将孤岛连成大陆:Paka Labs 跨链研究(4/4)全景式解读各类资产桥及跨链应用
编辑:Eunice
鸣谢:- DJ Qian @ Chainge- Mo Dong @ Celer- 熊炜 @ everVision- Pavel Velykyi @ Allbridge- James @ MAP Protocol本篇是 PAKA 跨链系列的第四篇,也是完结篇。前作的链接如下:
全文目录如下
建议收藏,全文约 3,5000+ 字
5.10 资产桥
5.10.1 WrapBridge
5.10.1.1 WrapBridge 的基本逻辑
5.10.1.2 WrapBridge 中的资产托管问题
5.10.1.3 pNetwork V1
5.10.1.4 Avalanche Bridge
5.10.1.5 Oportal(Boring DAO)
5.10.1.6 Shuttleflow
5.10.1.7 CounterStake Bridge
5.10.1.8 WrapBridge 的乱象
5.10.1.8.1 尝试中的解决方案:Co-mint
5.10.2 SwapBridge
5.10.2.1 SwapBridge 的一般结构
5.10.2.1.1 媒介资产
5.10.2.1.2 多链共同媒介资产
5.10.2.1.3 用户需完成一次or两次签名?
5.10.2.1.4 费用模型
5.10.2.1.5 SwapBridge 核心与扩展部分
5.10.2.1.6 Swap 桥的分层模型
5.10.2.2 SwapBridge 的分类
5.10.2.3 桥下 AMM 模式
5.10.2.3.1 Symbiosis V1
5.10.2.3.2 O3swap(O3 InerChange)
5.10.2.3.3 Thorswap (Thorchain)
5.10.2.3.4 Synapse Protocol
5.10.2.4 桥上 AMM 模式
5.10.2.4.1 symbiosis V2
5.10.2.4.2 cBridge 2.0
5.10.2.4.3 AllBridge Core
5.10.2.4.4 Chainflip
5.10.2.4.5 桥上 AMM 模式小结
5.10.2.5 恒定兑换模式
5.10.2.5.1 Multichain
5.10.2.5.2 XY Finance
5.10.2.5.3 Hyphen(Biocomy)
5.10.2.5.4 Stargate
5.10.2.5.5 恒定兑换模式小结
5.10.2.6 订单薄模式
5.10.2.6.1 Connext
5.10.2.6.2 Hashflow
5.10.2.6.3 Orbiter
5.10.2.6.4 Orion Bridge
5.10.2.6.5 订单薄模式小结
5.10.2.7 SwapBridge 聚合器
5.10.2.7.1 Rango
5.10.2.7.2 Bugee
5.10.2.7.3 Li.Fi
5.10.2.7.4 ChainHop
5.10.2.7.5 Chainge Finance
5.10.2.7.6 SwapBridge 聚合器小结
5.10.2.8 枢纽链
5.10.2.8.1 Catalog
5.10.2.8.2 Qredo
5.10.2.8.3 Pancakeswap
5.10.2.8.4 Permaswap
5.10.2.8.5 枢纽链小结
5.10.2.9 SwapBridge 小结
5.11 其他跨链应用
5.11.1 跨链机枪池
5.11.2 跨链借贷协议
5.11.3 跨链衍生品
5.11.4 跨链治理
5.11.5 跨链 NFT
5.11.6 跨链流动性聚合
5.11.7 跨链应用范式
6 跨链衍生话题
6.1 跨链桥的安全
6.1.1 信任根安全
6.1.2 代码实现安全
6.1.3 降损措施
6.1.4 安全承诺与保障
6.2 跨链桥的发展趋势
6.3 尾声
参考资料
本文被标记为一、二、......、十,共 10 部分,以方便读者再次进入时迅速定位继续阅读之处。
全文正文如下:
一
5.10 资产桥
跨链桥最重要的应用场景莫过于资产跨链。甚至在很多情况下,人们谈论跨链桥时,默认指代的就是资产桥。资产桥分为两种:
① WrapBridge:在一条链上的资产映射发行到另一条链上② SwapBridge:使用流动性互换的方式,在两条链之间交换资产
资产桥属于应用层。也就是说,资产桥可以基于一个提供通用 AMT 层的 AMB 桥来搭建,不过也有一些资产桥使用自己开发的、内置的 AMT 层。
一般来说,直接使用成熟的通用 AMT 层开发成本更低,但自建或者定制 AMT 层可以让资产桥的跨链执行过程消耗更少的 Gas 。这是因为大多资产桥使用的是外部验证模型,自建或者定制 AMT 层可以让跨链消息从接收到触发执行的过程在链下由外部验证者完成,而无需在目标链上进行。更详细的解释可以参考这里:
https://mirror.xyz/middlex.eth/aDxXBZZ3GsSMdesBSKXGp6n3EfJ8pL3_2j84_oIRWO05.10.1 WrapBridge
5.10.1.1 WrapBridge 的基本逻辑
5.10.1.2 WrapBridge 中的资产托管问题
5.10.1.3 pNetwork V1
5.10.1.4 Avalanche Bridge
5.10.1.5 Oportal(Boring DAO)
5.10.1.6 Shuttleflow
5.10.1.7 CounterStake Bridge
5.10.1.8 WrapBridge 的乱象
5.10.1.8.1 尝试中的解决方案:Co-mint
5.10.1 WrapBridge
WrapBridge 的作用是将一条链上的资产桥接到另一条链,其核心机制是:在源链上锁定资产 ,并在另一条链上发行 wrapped 资产。
wrapped 资产有两种典型的用途,分别是:
桥接其他链的资产以提升自身资产载量。例如各公链都热衷于将 BTC 资产导入自身链上,以太坊 L2 以及侧链基本也会从 L1 桥接包括 ETH 在内的大量资产过来。
作为 SwapBridge 的反应中间物。例如在 Multichain(Anyswap) 中,如果你希望把以太坊上的 USDC 兑换为 Polygon上的原生 USDC,其过程将是 :USDC(Ethereum) → anyUSDC(Ethereum) → anyUSDC(Polygon) → USDC(Polygon) 。
其中, anyUSDC 是整个跨链兑换过程中的一个中间产物,是用户不可感知的,它就像化学反应中的反应中间物,不会出现在最终产物中。
5.10.1.1 WrapBridge 的基本逻辑
WrapBridge 的基本逻辑都大致相同:
lock-mint : 在源链上锁定原资产,在目标链上铸造 wrapped 资产;
burn-unlock :在源链上销毁 wrapped 资产,在目标链上解锁原资产;
burn-mint:如果一个资产要在两条非本地链上互跨,则可以在源链上销毁 wrapped 资产,在目标链上铸造 wrapped 资产,避免 burn-unlock-lock-mint 的绕道操作。例如在 Ren Protocol 中,将 RenBTC 从以太坊传递到 BSC 链时,可以直接使用 burn-mint 逻辑,无需先赎回为 BTC 。
5.10.1.2 WrapBridge 中的资产托管问题
从 WrapBridge 的基本逻辑中,我们看到,WrapBridge 必然涉及资产托管的问题。只有当资产 lock 在一端时,wrap 资产才会在另一端发行。所以必须妥当的保管 lock 资产,如果 lock 资产遭受损失,就会导致 wrap 资产与原资产的脱锚。
如果链支持智能合约,那么链上的 lock 功能可以通过合约实现。将资产锁定在合约账户中时,除非既定的 unlock 条件被触发,否则被锁定的资产理论上不存在被盗风险。但某些链不支持合约(例如 BTC),则必须通过一个(或一组)普通账户来托管资产,这些账户由一组受信任的签名者通过门限签名来共同管理,只有这些签名者中的多数签名,资产才可以被取出。我们在 5.1 小节已经充分介绍了各类 BTC wrap 资产及其对应的资产托管方案。
多数研究者认为,合约账户的安全性高于普通账户,因为如果普通托管账户的签名者联合作恶或者被攻击,账户中的资产可以直接被转走,而如果要盗取合约账户中的资产,则需要制造假事件,触发合约的 unlock 操作。但随着近年来频繁发生跨链桥被攻击的事件,也有一些研究者开始认为,一旦信任层被攻破,制造假事件对于黑客而言并没有太高门槛,如果使用智能合约托管资产,合约代码本身的复杂性反而会导致更有可能出现代码纰漏,因此普通账户的安全性高于合约账户。即将在后文提及的 Avalanche Bridge 就持这种看法。
接下来,我们开始分析 WrapBridge 的一些项目案例。由于 WrapBridge 的基本逻辑大同小异,我们并没有列举那些 TVL 排名靠前的项目,而是选取了一些在资产跨链方案设计上有独到之处的项目。
5.10.1.3 pNetwork V1
在本系列 3/4 篇中,我们介绍过 Provable Things 团队开发的 pNetwork V2 ,但作为 WrapBridge 的 pNetwork V1 才是他们的主营业务。
pNetwork 的信任层是一个 TEE 网络,TEE 节点除了需要运行 Enclave 内的程序,还需在 Enclave 外运行接入链的全节点,以便于 Encalve 内的轻节点查询区块头。
pTokens 之旅
从 Token 到 pToken 的过程如下:用户调用源链智能合约的 lock 函数,发起 lock 交易 T ,将 Token 存入源链的托管地址,在交易备注字段中提供他们想要收款的目标链地址;
TEE 节点监听到交易后,进一步获取交易 T 所在区块的区块头 N 和该区块内所有 lock 交易,并向 Enclave 中传入,同时也会将区块头 N 及这些 lock 交易的默克尔路径传入;
Enclave 中的轻节点程序首先验证区块头 N,然后用区块头 N 验证所有 lock 交易;
一旦通过验证,Enclave 就会签名一批 mint 交易,为所有目标地址 mint 对应数量的 pToken;
各 Enclave 相互进行加密通讯,以合成完整的签名(2/3 以上的私钥碎片签名可以合成完整签名),并提交这些 mint 交易;
交易被广播到目标链,被目标链确认后,用户的目标地址就获得了 pToken 。
用户调用源链智能合约,发起 burn 交易 T ,将 pToken 发送到销毁地址,备注字段中写明目标链上的收款地址;
TEE 节点监听到交易后,进一步获取交易 T 所在区块的区块头 N 的所有 burn 交易,并向 Enclave 传入,同时也会将区块头 N 及这些 burn 交易的默克尔路径传入;
Enclave 中的轻节点程序首先验证区块头 N ,并用区块头 N 验证这些 burn 交易;
一旦验证通过,Enclave 就会签名一批 unlock 交易,从托管地址中向所有目标地址转出对应数量的 Token;
各 Enclave 相互进行加密通讯,以合成完整的签名,并提交这些 unlock 交易;
交易被广播到目标链,被目标链确认后,用户的目标地址就获得了 Token。
pNetwork Introductionhttps://p.network/about-pnetwork
5.10.1.4 Avalanche Bridge
Avalanche Bridge ( AB 桥) 是 Avalanche 的官方跨链桥,由 Ava Labs 开发,目前支持 Avalanche C 链与 Ethereum 之间的跨链资产传递。与 pNetwork 相同,Avalanche Bridge 用 TEE 节点组成的 MPC 网络来验证跨链事件,Avalanche Bridge 的 TEE 节点被称为 Warden(看守人)。为了追求更低的费率和更快的速度,Avalanche Bridge 在设计上做了两处优化。
1. 为了加快验证效率,Avalanche Bridge 直接在 TEE 内运行全节点,并在 Enclave 内建立索引来查询交易,而不像 pNetwork 的 TEE 节点在 Enclave 外运行全节点,在 Enclave 内运行轻节点。2. 如前文所述,为了避免复杂的合约代码实现,Avalanche Bridge 使用普通地址,而非合约地址来托管锁定资产。初始化的时候,Warden 之间相互加密通信,创建一个托管地址,并将私钥碎片密封在 各自的 Enclave 中,该托管地址是一个 0x 开头的 EOA 地址,既可以用于以太坊,也可以用于 Avalanche C 链。
我们以 ERC20 资产的跨链为例,来阐述 Avalanche Bridge 处理资产跨链的步骤:
wrap:Ethereum → Avalanche用户在以太坊上发起存款交易(无需调用合约),将需要跨链的 ERC20 资产转入托管地址;
每个 Warden 监控该地址,以发现这笔存款交易(Warden 不会监听链上的消息,而是直接通过 Avalanche bridge 前端界面的用户请求来发现存款交易,这意味着如果用户不通过 Avalanche bridge 前端界面发起交易,而直接向托管地址转账,Warden 是不会进行任何处理的);
Warden 将交易传入 Enclave,Enclave 进行验证;
验证通过后,Warden 会用各自的私钥碎片签署一笔 mint 交易,并相互进行加密通讯以合成完整签名(3/4 以上的私钥碎片签名可以合成完整签名);
Warden 向 Avalanche C 链提交 mint 交易,使得托管地址调用 mint 合约,为用户铸造 wrap 资产(为了安全考虑,Avalanche Bridge 仅支持资产跨链至与发起地址相同的目标地址)。
Unwrap:Avalanche → Ethereum
用户在 Avalanche C 链上调用桥合约中的 burn 函数,发起一笔销毁交易,将需要跨链的 wrapped 资产发送到指定的销毁地址;
Warden 监控到这笔交易后,将交易传入 Enclave ;
Enclave 各自对这笔交易进行验证;
验证通过后,Enclave 各自用自己的私钥碎片签名一笔 unlock 交易,以将托管地址中对应数量的原生资产发送给用户的 Ethereum 地址(无需调用合约);
Enclave 相互进行加密通讯以合成完成签名,并将 unlock 交易提交到 Ethereum ,交易被确认后,用户将在以太坊上收到托管地址的转账。
5.10.1.5 Oportal(Boring DAO)
BoringDAO 试图用 DAO 的形式来提供资产跨链服务。Oportal 是 BoringDAO 开发的一个开放的、通用的 WrapBridge ,该项目于 2021 年完成 145 万美元的私募融资。
BoringDAO 创建了一个新概念——隧道(Tunnel),对于每个区块链资产,都有一个单独的隧道负责让该资产实现跨链映射。任何人都可以通过抵押 $BORING (自己抵押或从社区征集抵押)来创建并激活一个隧道,成为该隧道的经营者(Operator)。隧道经营者可以获得大部分的用户跨链费用,其余的会给到托管人。
托管人是真正意义上的桥节点,它负责签名跨链事件,执行跨链操作。目前托管人有 21 个,门限为 15 。它们由 Boring DAO 项目基金会、核心开发者、知名机构和 $BORING 质押量较高的社区成员组成。这意味着 Oportal 是一座 PoA 桥。
但是隧道中质押的 $Boring 价值会决定隧道的铸币上限,与此同时,如果隧道中托管的资产被盗,这些质押会被用来补偿用户。BoringDAO 的这个模型有点类似于超额抵押式借贷,隧道经营者通过超额质押来获得“贷款额度”,用户向隧道经营者付费使用“贷款额度”。
该模式在保证开放性(任何资产发行方都可以通过质押 $BORING ,让 Oportal 支持自己的资产跨链)的同时,也能有效排除垃圾资产的进入。
但该模式有个硬伤,隧道经营者并不能决定桥的安全性,但却要为桥的安全风险买单,托管人作为桥真正的管理者却不需要质押任何保证金,权力和责任有所错位。笔者曾在 BoringDAO 社区提出该质疑,开发者给到的反馈是:他们在后续的版本中会要求隧道经营者参与托管。
BoringDAO Docshttps://docs.boringdao.com/how-does-tunnel-work5.10.1.6 Shuttleflow
ShuttleFlow 是 Conflux 公链官方推出的一个 WrapBridge 。
ShuttleFlow 将 Conflux 公链作为资产映射的中转链,让资产走一个二阶映射,从源链映射到 Conflux ,再映射到目标链。其实这种方式相比单阶映射式的跨链更加低效,我们推测 ShuttleFlow 此举的目的应该在于将其他链的资产导入 Conflux 。ShuttleFlow 目前已经支持了 49 种资产的跨链。ShuttleFlow 采用了类似于 BoringDAO 的开放结构,任何人都可以通过质押成为某个特定区块链资产的服务商。不过该服务商与 BoringDAO 中的隧道经营者有两点不同:
1. 同一个区块链资产,BoringDAO 允许有多个隧道经营者,他们根据质押量分摊收益,ShuttleFlow 的每个资产的服务商则只有一个,价高者得。2. ShuttleFlow 的服务商的质押与跨链铸币的容量没有相关性,服务商的角色更多相当于一个 Gas Reciever,由他制定面向用户的收费标准,并向联盟节点支付跨链成本。ShuttleFlow 的信任层是一个 PoA 验证者集,被称为“联盟节点”。
Shuttleflow 的一个亮点功能是专属充值地址:
当你发起跨链请求时,Shuttleflow 会为你提供一个专属的充值地址,你向这个地址转账之后,资产会被汇集到托管地址,完成跨链。这个体验非常类似于中心化交易所,而且这个功能可以支持新的用例
• 你可以直接把交易所的币提到专属充值地址,从而实现提币即跨链;• 其他人如果往这个地址转账,跨链后的资产也是你的,所以这种模式也可以实现转账即跨链。• 更进一步,Shuttlefolw 与 Conflux 上的一些 DeFi 项目进行了整合,Shuttleflow 可以为用户生成 DeFi“直达地址”,用户通过向直达地址转账,可以实现跨链即质押、跨链即借贷、跨链即 Swap 等操作。ShuttleFlow 白皮书https://shuttleflow.io/static/media/SF-whitepaper-zh-v1.0.75dc3b1e.pdf5.10.1.7 CounterStake Bridge
CounterStake Bridge 是由 Obyte 公链发起的 WrapBridge 项目,它采用一种被称为「增筹挑战」的游戏机制来维护跨链的安全。这是一个纯粹依靠经济假设而成立的安全模型。由于存在乐观挑战期,我们将其归类为乐观验证。
假设用户 A 需要将 Obyte Chain 上的 1000 $BYTES 铸造为以太坊上的 1000 $wBYTES,用户需要在 Obyte Chain 上锁定 1000 $BYTES 的同时,在以太坊上质押等价的 ETH(默认质押资产是目标链上的原生资产),我们假设为 1 ETH 。
此时将开启一个挑战期,如果没有人挑战,那么用户 A 将在目标链上获得 1000 $wBYTES ,并拿回质押的 1 ETH 。这个挑战的链条可以一直持续下去,每多一轮挑战,挑战质押金都会增加 50% ,挑战期都会延长。最终,当没有人再继续挑战时,游戏结束,质押的资金将在胜者一方当中分配,获胜方的 ROI 为 66.7% 。
CounterStake Bridge 认为:实践中大多数的资产跨链铸造都会在一轮挑战后结束,真相会成为谢林点。此外,资产的跨链铸造和跨链返回的流程是一致的,也适用于增筹挑战游戏。
为了减少用户跨链转移资产的时间,CounterStake Bridge 当中还有一个被称为 Assistant(交易助理)的角色。任何人都可以成为交易助理。在用户发起跨链资产转移时,交易助理为用户垫付资产和抵押金,并从中获得一部分手续费。用户如果希望通过 交易助理加速交易,可以在发起交易时,设置给交易助理的佣金比例。如果有交易助理接手你的交易,那么你将立即获得跨链铸造的资产和质押金,然后交易助理将替你在增筹挑战游戏中守护你的交易。交易助理可以是独立的个体,也可以是一个以 DAO 形式运行的社区资产池。
现在 CounterStake Bridge 支持的链有 Obyte、Ethereum、BSC、EOS、Fabric 。CounterStake Bridge 在实际运行中会如何?真相会成为谢林点吗?会不会出现巨鲸决定结果的局面?还有待验证。
CounterStake Docshttps://counterstake.org/how-it-works5.10.1.8 WrapBridge 的乱象
我们要谈论一个 WrapBridge 领域存在的一个悬而未决的问题,那就是映射资产的混同。
wrap 资产有一个显著特点,那就是不同的 WrapBridge 会为同一个资产创建不同的映射资产。例如我们讲过的 BTC 映射资产,有数十种之多。在原链和目标链相同,资产也相同的情况下,仅仅是因为跨链桥不同,就会创建不同的映射资产,它们是不同质的。
也就是说,映射资产是由资产发行方和跨链桥共同定义的。一些跨链桥的衍生资产命名和标注不规范,还可能导致用户的混淆。
Moonbeam 上的 USDC
Moonbeam 作为一条新生的公链,Circle 公司尚未在上面发行官方的 USDC ,但鉴于生态发展对稳定币的强烈需求,不同的跨链桥都在 Moonbeam 上铸造了 USDC 映射资产,这里包括 ceUSDC、anyUSDC 与 madUSDC 等。这无疑割裂了流动性,带来不好的体验。但用户可以根据资产名的前缀(也有可能是后缀)判断资产源于哪座桥。
但 Moonbeam 平台上的 StellaSwap 却列出了没有任何前后缀的 USDC 资产。有心的用户测试之后发现,此处的 USDC ,其实是 Multichain 发行的 anyUSDC ,可能 StellaSwap 只是为了减少用户的困惑,但是将 anyUSDC 直接标注为 USDC ,给用户造成错觉,让用户误以为是 Circle 官方的 USDC ,这样做是很不妥的。倘若有不明真相的用户拿这个 USDC 向中心化交易所充值,很有可能会充丢。
pGala 风波
更典型的事件是 2022 年 11 月4 日至 11 日发生的 pGala 风波。
事件的背景是,pNetwork 跨链桥可以将原生的 GALA(ERC20)代币跨链到 BSC 链上、将它 wrap 为 pGala(BEP20)代币,事件发生不久前,pNetwrok 在部署升级后的合约时,犯了低级错误,将托管钱包的私钥明文写入了合约,然后 pNetwork 决定对自身发动“白帽攻击”—— 增发 556 亿个 pGala ,以抽干 Pancakeswap 中的 pGALA/BUSD 流动性,将 pGala 代币价格“砸”至“归零”,再部署发行新的 pGala 代币,把它空投给向此池买入旧 pGala 代币的用户。
而一些中心化交易所,将 pGALA 和 GALA 视为一种资产,而 pNetwork 也没有在发起白帽攻击时,与这些交易所进行有效协同,导致交易所的“GALA”价格大开大合,套利者涌入。一些套利者成功提币并售出,却也有更多套利者在提币时发现仅支持提现到 BSC(提现为 pGALA),无法提现到以太坊(提现为原生 GALA)售出,蒙受了损失。
此事件的直接原因是 pNetwork 的低级错误以及不负责任的洗盘做法。但再思考一层,就会发现,交易所混同资产这一做法才是深层次的隐患。毕竟,Gala 和 pGala 本来就是两种不同的资产。
5.10.1.8.1 尝试中的解决方案:Co-mint
由 Multichain 发起,Shuttleflow、Parachain 等跨链桥项目方参与的 Co-mint 计划正在试图解决 wrap 资产的碎片化问题。加入 Co-mint 计划的众多跨链桥将相互认可彼此的 wrap 资产,并赋予这些桥的 wrap 资产相同的前缀符号。我们假设符号为coToken 。
Multichain 认为,这样做不仅可以减少用户的困惑,还可以聚合 wrap 资产的流动性。除此之外,多个桥铸造相同的 wrap 资产,还可以避免马太效应带来的垄断结果。
但笔者认为,Co-mint 计划还面临很多没有解决的问题,比如:
• 只要加入 Co-mint 计划的 WrapBridge 中有一个发生安全事故,coToken 整体就会随之脱锚。当然,这个时候我们还可以追溯到出事故的 WrapBridge ,并要求其承担赔偿责任,恢复锚定。但如果该桥拒绝承担赔偿责任,那就需要其他 WrapBridge 承担损失。• 不同跨链桥在预期安全性方面的不同,导致不同桥铸造的同一 wrap 资产在价格上略有差异。如果强行互认,则导致价格被平均,预期安全性最差的 wrap 资产占了其他 wrap 资产的便宜,那么其他 WrapBridge 项目方有什么理由同意这么做呢?总之,Co-mint 计划包含了某种平均主义的特征,并没有很好的协调各参与方的利益。在我们看来,Co-mint 如果要实现不同链的 wrap 资产互认,必须将它们的预期安全性拉到同一水平线,例如所有加入 Co-mint 计划的 WrapBridge 项目需要做出承诺并缴纳保证金:如遇安全事故,100% 赔付用户损失。或者让同一个保险基金为所有加入计划的 WrapBridge 项目承保。
Co-mint Introductionhttps://medium.com/multichainorg/co-mint-multichains-universal-cross-chain-bridge-48da559a96b7二
5.10.2 SwapBridge
5.10.2.1 SwapBridge 的一般结构
5.10.2.1.1 媒介资产
5.10.2.1.2 多链共同媒介资产
5.10.2.1.3 用户需完成一次签名or两次签名?
5.10.2.1.4 费用模型
5.10.2.1.5 SwapBridge 核心部分与扩展部分
5.10.2.1.6 Swap 桥的分层模型
5.10.2.2 SwapBridge 的分类
5.10.2 SwapBridge
SwapBridge 的应用场景是用户在多条链之间交换原生资产。与 WrapBridge 相比,SwapBridge 是更常见的资产桥用例,因为多数情况下,用户希望在目标链获得原生资产,而非 wrap 资产。
5.10.2.1 SwapBridge 的一般结构
5.10.2.1.1 媒介资产
为了更高效的完成交换,跨链兑换往往需要用到媒介资产。媒介资产是指与大多数其他资产建立了流动性的资产,它充当了类似于现实经济中货币的作用。众所周知,货币作为交易媒介,可以避免复杂且不可靠的物物交换。
我们用 M 来表示媒介资产,当用户需要将资产 A 交换为资产 B 时,如果
资产 A、资产 B 在同一条链上,那么过程将是:A→M→B 。
资产 A 和资产 B 不在同一条链上,过程会复杂一些。假设资产 A 所在的 X 链的媒介资产是 M(X) ,资产 B 所在的 Y 链的媒介资产是 M(Y) ,那么用户将资产 A 交换为资产 B 的过程会是这样的:A→M(X) ⇒ M(Y)→B 。
SwapBridge 要完成的是该过程的中间部分:M(X) ⇒ M(Y) ,至于该过程的首尾部分,也就是 A→M(X) 和 M(Y)→B ,往往由 A 链和 B 链本地的 DEX 完成。我们可以用下图来更完整的描述这个过程:用户的 UNI 在以太坊上的 Uniswap 中换成 USDT ;
通过 SwapBridge ,以太坊的 USDT 被换成 BSC 链上的 BUSD ;
然后 BUSD 通过 BSC 链上的 Pancakeswap 被交换为 CAKE 。
这个例子中,我们选取了 USDT 作为 M(Ethereum),而 BUSD 作为 M(BSC),在实际情况中,一条链上的媒介资产可能不止一种。例如,在以太坊上,除了 USDT 之外,USDC、ETH、WETH、DAI 也是常见的媒介资产,具体交易过程中,选择哪种媒介资产,取决于 SwapBridge 的路由策略,一般情况下,SwapBridge 会根据流动性分布情况,为用户选择合适的媒介资产,以相对较低的损耗为用户完成兑换。
5.10.2.1.2 多链共同媒介资产
在上面的例子中,M(X) 和 M(Y) 是不同的资产,但 M(X) 和 M(Y) 也有可能是相同资产,比如可能都是 USDT,或都是 USDC,USDC/USDT 本身就是原生的多链资产。例如用户需要把以太坊上的 UNI 交换为 Polygon 上的 MATIC ,那么过程可能是这样的:用户的 UNI 在以太坊上的 Uniswap 中换成 USDC ;
通过 SwapBridge,以太坊的 USDC 被换成 Polygon 链上的 USDC(原生 USDC,非 wrapped 资产);
然后 USDC 通过 Polygon 链上的 Quickswap 被交换为 MATIC 。
这种情况更有利于流动性的构建,因为不同链上的 USDT ,或是不同链上的 USDC ,其价格属性基本是一致的(尽管不同链的安全预期不尽相同,但不同链上的 USDT 都来自 Tether ,不同链上的 USDC 都来自 Circle ,他们都包含了其发行者的承兑承诺),几乎没有价差。这带来了两个便利:
LP 可以仅提供单边流动性。SwapBridge 可以在不同链上调度这些流动性。LP 大多数情况下不介意自己提供的流动性被传输到其他链上;
不同链上的 USDC 可以恒定 1:1 兑换,USDT 也是如此。这既省去了用合约代码实现 AMM 算法的复杂性,也省去了建立 AMM 的冗余流动性成本。
5.10.2.1.3 用户需要完成一次签名 or 两次签名?
还有一个需要注意的重要问题,目标链上 M(Y)→B 的过程需要用户再次发起交易吗?大多数 SwapBridge 是不需要的,因为在 M(X)⇒M(Y) 的过程中,M(Y) 并不会直接抵达用户的接收地址,而是会被转入 SwapBridge 在目标链上的一个合约地址,该合约地址收到 M(Y) 以后,会替用户完成 M(Y)→B 的兑换,然后再将资产 B 转给用户的接收地址。这样做有一个好处 —— 合约代付了 M(Y)→B 的 Gas 费用,SwapBridge 仅需在源链上向用户进行补偿性收费,或者直接在目标链上向用户接收地址打款时中扣除成本即可,避免了用户需要准备两种不同的 Gas 代币。但也有一些 SwapBridge 没有这么做(例如 Transferto、AllBridge),为了减少复杂的合约逻辑,它们选择让用户在目标链上额外签名一笔交易来完成资产跨链兑换。
5.10.2.1.4 费用模型
使用 SwapBridge 进行一次资产兑换,会包含以下类型的费用:
1. 源链上的 Gas 费;2. 目标链上的 Gas 费(可能用户直接支付,也可能目标链上的桥梁合约代付);3. 如果存在桥接链(见 3.4)上的计算,那么还需要支付桥接链的 Gas ;4. 为流动性支付的费用(支付给 LP 的费用);5. SwapBridge 自身的收费,一般会进入桥梁项目的 Treasure ,可能按笔收取,也可能按金额收取,或者二者兼有。源链、目标链,桥接链(如有)的 Gas 费是不可避免的,桥梁在设计中可以做的是,尽可能把更多的计算过程放在 Gas 较低的链上;
SwapBridge 自身的收费这部分关系到桥梁的价值捕获,但由于桥梁之间的充分竞争,一般这部分收费不会太高,甚至有可能存在补贴;
为流动性支付费用也是不可避免的,没有流动性就无法完成兑换,而用户为流动性付费的性价比,取决于 SwapBridge 的流动性效率。提升流动性效率是 SwapBridge 设计的关键。
5.10.2.1.5 SwapBridge 的核心部分与扩展部分
SwapBridge 的核心部分完成的是 M(A)⇒M(B) 的过程,两端的 DEX 是 SwapBridge 的扩展部分。有的 SwapBridge 会内置扩展部分,有的 SwapBridge 只提供核心部分,扩展部分会交给聚合器。
SwapBridge 的扩展部分大同小异,无非是在各自支持的链上聚合已有的 DEX ,但核心部分的设计却有多种多样不同的设计方案。因此,我们在后文的项目举例分析中,将只分析核心部分,忽略扩展部分。
5.10.2.1.6 Swap 桥的分层模型
为了便于分析,我们将 SwapBridge ,分为三个层:
AMT 层:
规定了 SwapBridge 所涉及的跨链消息如何传输及如何验证。如前文所述, SwapBridge 可能使用现有的 AMB 桥作为 AMT 层,也可能自建或者定制 AMT 层。
合约层:
SwapBridge 需要在每条支持的链上部署合约,以实现其对跨链消息的执行逻辑,不同的 SwapBridge 对其合约做了不同的命名,但其中要编写的执行逻辑没有太大差别。
流动性层:
规定了 swap 桥如何构建流动性,调节流动性,以满足用户的兑换需求。这是 SwapBridge 最值得展开分析的部分,是 SwapBridge 在设计时最需要花心思的地方。也正是流动性层的机制,决定了 SwapBridge 项目之间最根本的不同。
5.10.2.2 SwapBridge 的分类
SwapBridge 根据流动性模式,可以分成 AMM 和订单薄两种模式。
每一笔跨链兑换,都有一个执行价格,在不考虑 Gas 费和手续费的情况下,这个执行价格决定了用户每个单位的原资产可以兑换为多少个目标资产。在 AMM 模式中,执行价格由 AMM 算法计算得出;在订单薄模式中,执行价格一般由 LP(Liquidity Provider,流动性提供者) 报价(挂单)并由用户确认(吃单)而产生。
AMM 模式对交易者而言,存在滑点问题、MEV 问题;对 LP 而言,存在无常损失问题,这些问题在订单薄模式中是不存在的。在订单薄模式下的交易中,所见即所得,交易价格在交易之前已经确定。但相比于 AMM ,订单薄模式对 LP 的专业性要求较高,往往需要 LP 维护一个安全的热钱包环境并有能力编写或配置报价算法。
根据 AMM 所在位置的不同,可以将其分为两种模式。
• 桥上 AMM :指跨链桥直接根据两端的流动性分布,计算执行价格并完成兑换;• 桥下 AMM :指在跨链桥所支持的链上部署 AMM Pool ,并配合 wrap/unwrap 逻辑来实现资产跨链兑换。在桥上 AMM 中,有一种相对特殊的情况 —— 在多条链上使用相同的媒介资产并支持跨链过程中恒定 1:1 兑换。这也可以被理解为是一种 AMM(恒定和 AMM),但它和常规的 AMM(包括恒定乘积 AMM 及其各种改进版)特性大不相同,我们将其单独列为一个类别:恒定兑换模式。
所以,后文我们会将 SwapBridge 划分四个类别来分析
• 桥下 AMM 模式• 桥上 AMM 模式• 恒定兑换模式• 订单薄模式三
5.10.2.3 桥下 AMM 模式
5.10.2.3.1 Symbiosis V1
5.10.2.3.2 O3swap(O3 InerChange)
5.10.2.3.3 Thorswap (Thorchain)
5.10.2.3.4 Synapse Protocol5.10.2.3 桥下 AMM 模式
5.10.2.3.1 Symbiosis V1
Symbiosis Finance 是 Binance Lab 参投的一个跨链桥项目,早期投资者还有 Blockchain.com,Spartan,Avalanche(Avatar),DAO Maker,KuCoin 等,团队成员主要来源于欧洲,产品界面颇有极客风。Symbiosis 的 AMT 层是一个无许可的 MPC 网络,称为 Symbiosis Relayers 网络,具有内置的加密经济激励机制。任意主体都可以通过质押 SIS 成为 Symbiosis Relayer 。
在 Symbiosis V1 5中,如果用户需要将以太坊上的 USDC 兑换为 BSC 上的 BUSD ,那么过程可能会有两种路径:
• 路径 ① :先 wrap 再 swap
由于以太坊上的 Gas 远高于 BSC,Symbiosis V1 在为用户选择路径时会倾向于选择 路径 ① ,把 swap 的过程放在 Gas 费较低的 BSC 链上,以帮用户降低跨链兑换的整体费用。
流动性再平衡AMM pool 会有流动性调节的功能。假设资产总是从以太坊跨到 BSC ,而非相反,那么 sUSDC/BUSD 的兑换比就会增大,这意味着需要更多的 sUSDC 才能换到 1 个 BUSD 。这种情况会鼓励套利者进行反向操作,用 BUSD 购买打折的 sUSDC ,然后 unwrap 到以太坊上变现。同理,假设资产总是从 BSC 跨到以太坊,而非相反,也会鼓励套利者进行反向操作,重新平衡流动性。
Symbiosis Docs:https://docs.symbiosis.finance5.10.2.3.2 O3swap(或称 O3 InerChange)
O3 Swap 是由 O3Labs 团队打造的资产跨链协议,其 AMT 层为 Poly Network 。O3Labs 团队 2017 年创立于东京, 是全球最早的加密钱包开发团队之一。与 Symbiosis V1 不同的是,用户在 O3swap 中的每笔跨链兑换,都包含了分别在源链和目标链上的两次 swap 。
例如,如果用户在 O3swap 中要把以太坊上的 USDC 换成 BSC 上的 USDC ,过程会是这样的:如果用户想要在 BSC 上获取 BUSD ,就还需要再在 BSC 链本地的 DEX(例如Pancakeswap)中做一步 swap 。O3swap 没有为 pUSDC/BUSD 建立流动性。O3swap 建立流动性的交易对,全部是 A/pA 形式,没有 A/pB 形式。
流动性再平衡
当 LP 想要向某条链上的 A/pA 池子提供流动性时,需要按照当前池中两种资产的比例,向池中提供 A 与 pA 两种资产。LP 如果仅提供 A ,那么系统会自动通过“Barter”功能,将其中一部分转换为 pA 。
A 与 pA 的转换有两种方式,一种是通过 A/pA 的 AMM 池进行 Swap ,另一种是通过 O3 Bridge 的 wrap/unwrap 功能直接 1:1 转换 A 与 pA ,这在 O3swap 的文档中,被称为 peg/unpeg ,另外 O3swap 还提供在一条链上直接 1:1 转换 A 与 pA 的功能,称之为 Barter 。
由于 peg/unpeg 和 Barter 功能的存在,A/pA AMM 池中任何方向上的不平衡都很快被套利者抹平。在 Symbiosis V1 中,每次跨链兑换,仅会用到目标链上的 AMM 池子;而在 O3swap 中,每次跨链 swap ,会用到源链和目标链上的两个 AMM 池子。我们将前者称为单边 AMM 模式,后者称为双边 AMM 模式。
单边 AMM 模式和双边 AMM 模式都需要桥梁在每条支持的链上部署 AMM 池。从流动性部署的成本来看,两者没有区别的,但双边 AMM 的模式无疑增加了一次 swap 操作的 Gas 费用。此外,双边 AMM 模式,用户进行两次 swap ,就会存在两次 price impact ,用户最终能获得的资产数量会减少。
但我们见到的双边 AMM 模式在项目中的采用率比单边 AMM 的要更高,甚至 Symbiosis 在其 V2 版本中也不再用单边 AMM 了,这点让笔者有些不解。可能是由于双边 AMM 模式中,桥上的逻辑更简单,只有 burn-mint 一个逻辑,不需要 wrap 和 unwrap 两个逻辑。
O3swap docs :https://docs.o3swap.com/5.10.2.3.3 Thorswap (Thorchain)
Thorchain 的团队成员大多来自 Swish Labs,背后的投资机构包括:Delphi Digital,Multicoin Capital,X21 Capital,Zee Prime Capital 等。Thorswap 算是 Thorchain 的一个核心产品,而 Thorchain 作为一个 PoS 型 MPC 网络,也是 Thorswap 的 AMT 层。Thorchain 的 work token 是 Rune 。
Thorswap 放弃了以稳定币作为媒介资产的路径,而是以 Rune 作为媒介资产。在 Thorswap 中,从 X 链上的资产 A ,到 Y 链上的资产 B ,必须经过 Rune 作为中转资产,才能完成兑换:由于 Thorswap 所支持的链中,有不少不支持智能合约,因此 Thorswap 的流动性池是由 Thorchain 的验证人直接托管的,他们控制着各链上托管账户的私钥。为了避免验证人合谋盗取资产,Throchain 要求验证人做抵押,抵押总金额为所有流动性池中的 RUNE 的 2 倍,由于流动性池中还有等值的非 RUNE 资产,所以验证人在 Throchain上的抵押金额与他们托管的流动性价值相等。
以 RUNE 作为媒介资产,好处是:
• 增加了 RUNE 的价值捕获能力; • 所有链统一使用一种媒介资产,避免不同媒介资产之间的兑换。但也带来了问题:
• 当 RUNE 价格下跌时,套利者会从系统取走流动性,流动性的下降可能会给 RUNE 的价格带来负面预期,造成价格下跌,从而形成恶性循环,死亡飞轮。
Thorswap 选择让所有资产都与 RUNE 建立流动性,而不能复用现有媒介资产的流动性,为自己找了一条更困难的流动性获取路径。不过,Thorswap 选择这条路径的原因,可能是大多数其支持的链(如 BTC、BCH)上没有 DEX ,也就不存在可复用的流动性。
Thorswap Docs:https://docs.thorchain.org/5.10.2.3.4 Synapse Protocol
Synapse 最初的名称是 Nerve,只是 BSC 上的一个稳定币 DEX , 发展至今已成为支持 14 条公链的资产跨链协议 。Synapse 一词的含义是神经突触,这似乎表达了 Synapse 将多条链连接为一个神经网络的愿景。Synapse 使用限定的媒介资产:nUSD 和 nETH 来传导跨链价值。nUSD 和 nETH 是在以太坊上通过资产储备创建的 wrapped 资产。
Nexus Pool on Ethereum
Synapse 在以太坊上部署了 Nexus Pool ,在其中质押 ETH ,可以获得 nETH ,在其中质押 USDT、USDC、DAI 这三种稳定币中的任意一种或多种资产都可以获得 nUSD ,质押相对短缺的稳定币可以获得较多的 nUSD ,而质押相对过剩的稳定币获得的 nUSD 数量会打折。而用户存入单个稳定币,具体能获得多少 nUSD ,应该是模拟在该 Pool 中,用这些稳定币能兑换多少 [1/3USDC+1/3USDT+1/3DAI] 。
Synapse 的文档资料中没有更明确的信息,根据笔者与社区中 Synapse 开发者的讨论内容,这里的相对短缺和过剩,应该是以平均数量作为标准的,这意味着 Synapse 假设 USDT、USDC、DAI 的价值是相等的,完美的平衡状态是三者各占 1/3 的状态。然而实际上稳定币之间也会存在微小的价差,这样的假设会给套利者留下一些空间。
其他链上的 Nexus Pool
除了以太坊之外,Synapse 在其他支持的链上也部署了 Nexus Pool ,这是一个 nUSD/Stablecoin 流动性,多数情况下这是一个多资产池,例如在 BSC 链上,synapse 部署的是 nUSD/BUSD/USDT/USDC 的 4pool 。在支持的链当中,有一部分是以太坊的 Rollups ,它们上面还会有 nETH/ETH 的流动性。
在 Synapse 中,用户如果想将 Polygon 上的 USDC 交换为 BSC 上的 BUSD ,那么过程是这样的
但如果用户的兑换涉及到以太坊,则过程会不太一样。
如果要将以太坊的 USDC 换成 BSC 上的 BUSD,过程是这样的也就是说,Synapse 中,若不涉及以太坊的跨链 swap ,则是双边 AMM 模式,若涉及以太坊的跨链 Swap ,则是单边 AMM 模式。
流动性的提供与取回
LP 可以为每条链上的 nUSD/stablecoin 池中提供流动性以获得 nUSD-LP 通证,LP 可以按照当前池中各资产的比例,等比例的提供 nUSD 和各个 stablecoin ,确保不会改变池中各资产的现有比例,就像他们在单链 DEX 上做的那样;
LP 也可以仅提供其中一种。如果仅提供其中一种资产,就会推动池子中的资产比例发生改变,如果 LP 的行为推动池子的资产比例向理想比例接近,那么 LP 会获得更多的 nUSD-LP 通证,如果 LP 的行为推动池子的资产比例向理想比例远离,那么 LP 获得的 nUSD-LP 数量会打折扣。
什么是理想比例呢?以 BSC 上的 4pool 为例,nUSD/BUSD/USDT/USDC 的理想比例应该是 1/2nUSD+1/6BUSD+1/6USDT+1/6USDC 。LP 提供单资产流动性能获得多少 nUSD-LP ,应该是模拟 LP 提供的资产,能从池中兑换出多少 [1/2nUSD+1/6BUSD+1/6USDT+1/6USDC] 。
取回流动性时同理,LP 可以销毁 nUSD 按照池中资产现有比例等比例取出流动性,也可以取出其中的单一资产,如果 LP 取出资产的行为让池子中的资产比例更接近理想比例,那么 LP 会取回更多的资产,反之取回的资产数量则会打折扣。
所以对于 LP 而言,提供流动性时,应该选择流动性相对短缺的资产,而撤回流动性时,应该选择流动性相对过剩的资产,如果当前流动性是平衡的(各资产比例为理想比例),不存在相对短缺与相对过剩,按照池中的分布等比例的提供/取回多资产是最佳策略。
但是,如果 LP 要提供的流动性金额不是太多的话,其实不用考虑这么复杂,因为上述因素的影响不是太大,Synapse 采用类似 Curve 的 stableswap 做市算法,池子中的基础流动性也很充裕,LP 提供单个资产的流动性,给池子的平衡性带来的影响是微乎其微的。
Synapse Chain
Synapse 的 AMT 层是一个被称为 Synapse Chain 的 PoS 网络,Synapse Chain 本身是以太坊的一个 Op Rollup ,work token 为 SYN 。Synapae 希望随着其跨链业务的发展,Synapse Chain 能从一个桥接链发展为一个枢纽链,以允许应用程序直接部署在 Synapse Chain 上。
Synapse Docshttps://docs.synapseprotocol.com/四
5.10.2.4 桥上 AMM 模式
5.10.2.4.1 symbiosis V2
5.10.2.4.2 cBridge 2.0
5.10.2.4.3 AllBridge Core
5.10.2.4.4 Chainflip
5.10.2.4.5 桥上 AMM 模式小结
5.10.2.4 桥上 AMM 模式
在桥上 AMM 中,一个交易对的两种资产的流动性分别在两条链上,桥梁直接根据流动性分布及做市算法计算执行价格,并为用户完成兑换。
相比桥下 AMM,桥上 AMM 模式没有反应中间物,一步到位!不过,这也意味着,如果交易失败,就需要回撤整个跨链兑换。
“桥上”是个抽象概念,AMM 在桥上,意味着执行价格是通过跨链计算得出的,具体来说,有几种情况:
① 执行价格在源链和目标链上的桥合约中计算。计算之前,源链上的流动性数量会和用户在源链上发起的交易一同通过 AMT 层跨链传入目标链;② 执行价格由 AMT 层的外部验证人集计算。计算完成后传入目标链,触发目标链上的池子向用户释放资产;③ 执行价格在桥接链上计算。与 ② 的情况其实相同,本质上还是桥接链的验证人在计算。④ 执行价格在中继链上计算。桥梁将自身支持的链中选择一条作为中继链,并在这条链上完成计算,这种情况下,源链将参数通过 AMT 层传入中继链,中继链计算完成后,再通过 AMT 层传入目标链,触发目标链上的资产释放。5.10.2.4.1 Symbiosis V2
Symbiosis V2 采用了完全不同于 V1 的形式,在 V2 中,有一个中继链,称为 S-chain(结算链),执行价格的计算将在 S-chain 上完成,当前被选定的 S-chain 是 BSC 。
Symbiosis V2 依然借助了 wrap 资产(sToken)作为计算的媒介。
Symbiosis V2 在每条支持的链上选择一种稳定币作为媒介资产,每条链上媒介资产都在 S-chain 上对应一个 sToken 。
• Ethereum→USDC• BSC→BUSD• Avalanche→USDC.e• Polygon→USDC• Telos→USDC• Boba Ethereum→USDC• Boba Avalanche→USDC.e• Boba BNB→USDC• KAVA→USDC
需要注意的是:不同链上的媒介资产即便相同,在 S-chain 上也是不同的 sToken ,例如 Ethereum 上的 USDC 和 Polygon 上的 USDC 在 S-chain 上是不同 sToken 。
sToken 实际上是各条链上的流动性在 S-chain 上的一种记账表示。以太坊上有多少USDT ,就会在 S-Chain 上有多少个 sUSDT-Ethereum ,二者的数字始终保持一致。如果以太坊上的 USDT 流动性被添加或者被撤回,S-Chain 上的 sUSDT-Ethereum 也会对应的增减。
在此基础上,Symbiosis V2 在 S-chain 上建立了一个由各种不同的 sToken 组成的多资产 AMM 池。Symbiosis V2 目前支持九条链(含作为 S-chain 的 BSC ),因此 S-chain 上的 AMM 池是一个 9pool ,有 BUSD 和 8 种 sToken 。
9pool 可以帮助用户完成 9 条链间任意方向的资产交换,且由于不同方向上的兑换资金量的不同造成的不平衡,会有套利者来抹平。
Symbiosis Docs:https://docs.symbiosis.finance/ 5.10.2.4.2 cBridge 2.0cBridge 是由 Celer Network 推出的资产跨链桥,cBridge 1.0 曾经采用基于哈希时间锁的原子交换(本地验证)以及订单薄模型来实现跨链兑换,但现在已经不再采用(5.2.3.1 描述的内容已过时),原因是原子交换始终需要用户操作两个以上的步骤才能获得资产,用户体验不友好。
现在 cBridge 2.0 已改用外部验证和乐观验证组合的模式(见 5.8.2 ),其 AMT 层是一个被称为 SGN(State Guardian Network)的 PoS 网络以及 Celer IM,而且现在的 cBridge 是 AMM 模式。
cBridge 支持在不同的链间交易 USDT、USDC、ETH 等资产,但仅能支持同质资产之间的互换,USDT 只能换 USDT,ETH 只能换 ETH 。
当然不是所有链上都有 ETH ,也不是所有链上都有 USDT ,这就需要在跨链时,必须选定一个共同的媒介资产来进行交易。
流动性模式
假如 Ethereum 上的 USDC 要换成 Polygon 上的 USDC ,cBridge 会通过部署在 Ethereum 上的 USDC 池和 Polygon 上的 USDC 池中的流动性来为用户完成兑换。
这里有一个问题,Ethereum 上的 USDC 和 Polygon 上的 USDC ,必须是相对均等的,才能让 USDC(Ethereum)/USDC(Polygon)的兑换比接近 1:1 ,事实上,按这个逻辑,cBridge 所支持的每条拥有 USDC 池的链中的 USDC 储备都必须大致接近。这带来了不小的浪费:不同链上的跨入规模不一样,对池中储备量的需求也不同。那些不需要那么多储备的链也必须在池中储备足够多的 USDC 。面对这个问题,cBridge 在类似 Curve 协议的 Stablecoin AMM 曲线的基础上,增加了每条链的权重参数:w 值,就是下面公式中的:wi 和 wj
假如 wi=wj=1 ,那么这就是单纯的 Curve 协议的曲线,此时两边资产的理想价值比例是 1:1 ,cBridge则会为某种资产在不同链上赋予不同的 w 值,改变理想的价值比例。
w 值较高的链只需相对较低的储备,w 值较低的链则需要更多的储备。w 值需要cBridge 开发团队手动设置,可以通过治理调整。
这需要 cBridge 团队根据经验判断某种资产在每条链上未来一段时间的跨入跨出情况。
如果某种资产在一条链的跨出总是大于跨入,那么流动性就会倾向于在这条链上堆积,为该资产在该链设定较低的 w 值可以促进冗余的流动性流到其他 w 值较高的链上去。
相反,如果某种资产在一条链的跨出总是小于跨入,那么流动性会倾向于枯竭,为该资产在该链设定较高的 w 值可以吸引其他链上的流动性流入进来。
举个例子,在 cBridge 中,Optimism 上的 ETH 跨出总是大于跨入,这是因为 Optimism Bridge 从以太坊上桥接 ETH 时,不需要等待时间,而要桥接回去时,需要等待 7 天左右。这造成了流动性倾向于在 Optimism 上堆积,因此 cBridge 为 ETH 在 Optimism 上设置了较小的 w 值。
总之,cBridge 的非对称储备算法对于流动性在不同链上更加合理的分布有重要意义。
流动性的提供与取出
我们以 USDC 为例,cBridge 支持的链中,共在 11 条链上有 USDC 储备池,LP 可以向这些 11 条链上的 USDC 等比例的提供流动性,但这无疑操作过于繁琐,cBridge 并没有支持这样的操作。cBridge 只支持 LP 提供单链上的 USDC ,如果要在多链提供 USDC ,那就需要逐个操作。
不过,LP 提供单链流动性,可能面临这样的情况,我们以 USDC 为例说明:
如果在 USDC 过剩的链上提供 USDC 的流动性,则这些流动性会被套利者转移到其他链上,套利交易遵循 AMM 算法,因此被转移后,LP 的 USDC 数量会变少,LP 遭受了损失。
所以系统鼓励 LP 为相对短缺的资产提供流动性,以促进多链流动性的平衡,假设流动性在多链上是平衡的,那么 LP 最佳的策略是等比例的向 11 条链提供流动性。
但实际上,和 Synapse 的情况相似,LP 如果不是提供巨量流动性的话,不用考虑这么复杂,手里的资产在哪条链上,就在哪条链上提供流动性,对平衡性的影响不会太大,能被套利的空间也微乎其微。如果 LP 要提供巨量流动性的话,才需要考虑如何在各链上相对均匀的提供。
需要注意的是,cBridge 不会为 LP 提供 LP Token,而是通过 SGN 网络追踪 LP 提供的流动性去向,LP 取回流动性时,可能需要从其他的多条链上取回,而且和最初提供时的数额不太一致。
cBridge Docshttps://cbridge-docs.celer.network/5.10.2.4.3 AllBridge Core
Allbridge 成立于 2021 年,创始人是著名加密企业家 Andriy Velykyy ,截至目前,Allbridge 已完成 200 万美金的种子轮融资。AllBridge Core 是一个跨链的稳定币交易解决方案,目前支持
• USDC (Ethereum、Polygon、Solana)
• USDT (Ethereum、Polygon、BSC、Tron)
• BUSD (BSC)
• DAI (Ethereum)
四种稳定币在 5 条链上的跨链兑换。
跨链兑换与流动性
AllBridge 中的跨链兑换要经过一个虚拟媒介:称为 virtual dollar value ,可以将其理解为类似于 Wrapped Token 一样的反应中间物,但并不存在实体,只是一个计算的媒介。例如要把以太坊上的 USDC 换成 BSC 上的 BUSD ,Allbridge 会先把 USDC 换算为 virtual dollar value ,然后再换算为 BUSD 。virtual dollar value 与所有稳定币的初始价格比都 1:1 ,但随着交易的进行会发生滑动。具体滑动数值的计算是个复杂的数学过程,本文中不宜展开,有兴趣的朋友可以在 Allbridge Core Docs 中了解详情。
可选 AMT 层
Allbridge 的 AMT 层是可选的,目前支持两个选项,分别是 AllBridge 自身和 Wormhole 。5.10.2.4.4 Chainflip
Chainflip 总部位于柏林,团队成员分布在世界各地,于 2021 年 8 月 和 2022 年 5 月分别完成了 600 万和 1000 美元的融资。Chainflip 的 AMT 层是一个 MPC 网络,称为 State Chain ,Chainflip 中,跨链兑换的执行价格计算是在 State Chain 上完成的。
Chainflip 是一个正在开发中的项目,产品尚未上线。根据 Chainflip 文档中的描述,Chainflip 计划使用类似于 Uniswap V3 的 AMM 算法来执行跨链兑换,在 Chainflip 中称为:Just In Time AMM,简称 JIT AMM 。
我们知道,Uniswap V3 的区间做市算法是 AMM 算法发展史的一个里程碑,该算法某种程度上把 AMM 和订单薄的性质融合起来了。LP 在 AMM 中可以提供对称的流动性(与当前池中资产等比例),也可以提供不对称的流动性(向池中提供不等比例的流动性)。如若将不对称的流动性推到极致,那就是单边流动性(为一个交易对提供单资产流动性)。而提供单边流动性的性质相当于挂单,所以 Uniswap V3 实际上支持 LP 挂止盈卖出单和限价买入单。
Chainflip Docshttps://docs.chainflip.io/5.10.2.4.5 桥上 AMM 模式小结
一种资产在每条链对流动性的需求不同,强行要求每条链储备相同价值的流动性,是会造成巨大的流动性浪费的。所以我们发现几乎所有的桥上 AMM 模式的 SwapBridge ,都在努力解决一个问题:如何实现流动性的不对称性。
• Symbiosis V2 是通过为各链上的流动性建立一个类似 Balancer 的多资产池来实现这一点;
• cBridge 则是在对称的 AMM 曲线的基础上,为不同链上的流动性设置了不同的权重参数,实现了流动性的不对称性;
• Allbridge Core 加入了一个虚拟价值中介,虚拟价值中介与各稳定币的兑换比,与各链上的储备无关,只与兑换历史有关,因此不再要求各链储备具有对称性;
• Chainflip 则采用 JIT AMM ,天然允许提供不对称的流动性。
五
5.10.2.5 恒定兑换模式
5.10.2.5.1 Multichain
5.10.2.5.2 XY Finance
5.10.2.5.3 Hyphen(Biocomy)
5.10.2.5.4 Stargate
5.10.2.5.5 恒定兑换模式小结
5.10.2.5 恒定兑换模式
AMM 尽管有调节流动性的功能,但导致桥梁变的复杂,无论是复杂的反应中间物和反应过程,还是复杂的跨链计算。一些项目开始使用更加简单直接的方式:如果两边的资产一致,那就始终让他们可以 1:1 兑换。
正如前文所言,这种形式也可以理解为一种特殊的 AMM : 恒定和AMM。如果始终恒定 1:1 兑换,两边的流动性之和自然也是不会变的。
恒定兑换模式的优势是流动性的使用率会更高,不会像各类恒定乘积 AMM 及其各种改进版(Balancer 的多资产 AMM、DODO 的 PAMM ,Curve 的 Stable AMM 等),始终存在一部分只是参与计算,但极少被使用的流动性。而且恒定兑换模式天然允许不对称的流动性提供,因为兑换价格是一个恒定值,两边流动性的分布不会影响价格。
但恒定兑换模式也有其制约,它仅支持相同资产在不同链上的版本之间的兑换,其他类型的兑换都要以此为媒。正如:只能支持 USDC 与 USDC 之间的恒定兑换,如果两边分别是 USDC 和 USDT ,那么是不能粗暴的 1:1 处理的。
恒定兑换还有一个更重要的问题,那就是作为一个恒定和 AMM ,他并不具备流动性调节的功能。随着兑换的进行,一端的流动性可能会耗尽,而且永远不会有套利者重新平衡流动性的套利空间。所以 SwapBridge 项目如果采用这种方式,往往会配备其他的流动性再平衡措施。
5.10.2.5.1 Multichain
Mulitichain 是一座 wrap+swap 的混合资产桥,其 AMT 层是 Multichain 自身基于 Fusion 构建的 MPC 网络。
当用户需要桥接的资产在目标链上没有原生资产时,Multichain 将触发 wrap 流程,用户获得的是 anyToken,例如用户将 USDC 从以太坊桥接到 Moonbeam 时,用户获得的是 anyUSDC ;
当用户需要桥接的资产在目标链上有原生资产时,Mulitichain 将触发 swap 流程,用户将直接获得目标链上的原生资产,例如用户将 USDC 从以太坊桥接到 Polygon 时,用户会在 Polygon 上获得原生的 USDC ;
当用户需要桥接的资产在目标链上没有原生资产,但是有目标链官方认可、资产发行方认可、或是约定俗成的默认 wrap 资产时,也会触发 swap 流程。例如用户将 ETH 从以太坊桥接到 Near 时,用户会在 Near 上获得 nETH(Near 官方跨链桥 Rainbow Bridge 所发行的 ETH 映射资产)。
我们以 USDC 从以太坊换到 Polygon 上为例,过程会是这样的:请注意,其中没有 swap ,每个环节都是 1:1 的兑换。
在这个过程中,anyUSDC 是反应中间物,对用户而言是感知不到的。只有在交易失败时,用户可能会收到它:
如果 burn-mint 环节失败,用户手里会保留 anyUSDC(Ethereum) ;
如果最后一步 convert 环节失败,用户手里会保留 anyUSDC(BSC)
用户可以用反应中间物,随时重试失败的环节,或者回退到初始状态。
burn-mint 环节一般不会失败,除非 AMT 层出现问题,比较常见的失败是最后一步 convert 环节由于目标链流动性不足而失败。
但 Multichain 没有流动性再平衡措施,所以在最后一步的 convert 环节,很有可能出现 Polygon 链上 USDC 储备不足的情况,遇到这种情况,用户会收到 anyUSDC( Polygon),无法完成后面的过程。此时用户如果希望继续兑换,只能等待有人从 Polygon 跨出而锁入 USDC,或者 LP 添加流动性时,才有可能完成。
流动性提供与取回
LP 可以通过提供流动性来获取收益,LP 可以提供单链流动性,提供流动性获得的 LP Token 就是 anyToken ,实际上提供流动性的过程就是将 Token convert 为 anyToken 的过程。同理,取回流动性实际上就是 anyToken convert 为 Token 的过程。
LP 的流动性可能被移动到其他链上,不过数量始终不会变的,这与 cBridge 中的情况不同。但流动性的移动可能会导致 LP 提供流动性的链储备不足,无法足额取回,这时,LP 可以将 anyToken 通过 burn-mint 转移到其他储备充足的链上,以在其他链上取回流动性。
其实如果用户在跨链兑换过程中,因最后 convert 环节失败而收到 anyToken ,那么用户持有 anyToken 其实也在被动的提供流动性。
Multichain Docshttps://docs.multichain.org/5.10.2.5.2 XY Finance
XY Finance 团队成员主要来自以太坊基金会、imtoken、IBM 等企业,其创始人 Wilson Huang 是浸淫区块链领域超过 8 年的行业老炮。XY Finance 在 2021 年年底的私募融资和 IDO 中,共筹集了超过 2000 万美元。
XY Finance 将其产品分为 X swap 和 Y pool 。X swap 是用户界面,Y pool 是背后的流动性支持。在 XY Finance 中,任意跨链兑换都需要通过两边共同的媒介资产来完成。XY Finance 共支持三种媒介资产,USDC、USDT、ETH 。
XF Finance 的 AMT 层是自身的 Consensus 链,实际上是一个 MPC 网络。LP 在任意 XY Finance 支持的链上提供流动性都将在 Consensus 链上获得 LP Token(xyUSDC、xyUSDT、xyETH)
XY Finance 采用恒定兑换模式,1 USDC 始终可以兑换 1 USDC 。为了应对 Y Pool 的失衡,XY Finance 会给那些推动流动性转移到流动性较低的链上的交易奖励 $XY(XY Finance 自身的代币)。
Consensus 链会记录每条链上的流动性余额,并通过特定算法计算每个交易对流动性再平衡做出的贡献。
但实际上,XY Finance 假定的平衡状态是各链上的流动性余额处于平均状态。$XY 的激励实际上是推动各条链上的流动性平均化,而非推动其达到最合理状态。
XY Finance Docshttps://docs.xy.finance/5.10.2.5.3 Hyphen(Biocomy)
Hyphen 是由 Biconomy 推出的 SwapBridge 。Biconomy 成立于 2019 年,是较早的参与解决从 Layer2 到 Layer1 转账痛点的项目,除了大大缩短了转账时间,还提出了一种「元交易」(Meta Transactions) 的解决方案用于解决链上 Gas 费用昂贵的问题,元交易的本质是允许 dApp 的开发者代替其用户去支付交易费用。Hyphen 的 AMT 层是由执行节点(Executor Node)组成的 MPC 网络。用户需要跨链兑换时,会在源链将资产存入 LPM 合约,Hyphen 网络的执行节点会监听存入事件,并转发给目标链上的 LPM 合约,目标链上的 LPM 合约接收到之后,就会释放资产到用户提供的目标链地址。执行节点并不需要提供流动性,所有流动性都在 LPM 合约中。
Hyphen 最早的时候,曾采用过 AMM 模式。但现在的 Hyphen 采用的是恒定兑换模式。在此基础上,Hyphen 采用“动态费用算法”来推动流动性的再平衡。
动态费用算法
在 Hyphen 中,每一笔 swap 除了常规的 Gas 费、手续费之外,还会涉及到两笔动态费用 —— deposit 奖励和 transfer 费用。
在 Hyphen 中,每一笔跨链兑换实际上是由两笔交易构成,源链上的 deposit 交易(用户向 LPM 合约付款),和目标链上的 transfer 交易(LPM 向用户付款)。
Hyphen 会对每一笔 deposit 交易进行奖励,每一笔 transfer 交易进行收费。
Hyphen 把在没有任何跨链兑换时,LP 提供的流动性的自然分布视为平衡状态。而不断进行的跨链兑换将使流动性进行重新分布,有的链的流动性相比平衡状态时减少,Hyphen 称其为流动性负债状态,有的链的流动性相比平衡状态时增加,Hyphen 称其为流动性过剩状态。
deposit 奖励
如果源链处于流动性负债状态,用户的 deposit 行为实际上改善了这种负债状态,那么用户会获得 deposit 奖励,奖励金额 = 用户的 deposit 金额/流动性负债率 * IP 池总资金,用户获得的最大奖励不会超过 IP 池总资金。
如果源链不处于流动性负债状态,则没有 deposit 奖励。
transfer 费用
当目标链流动性处于平衡状态或负债状态的时候,如果用户要继续该链转账,使用这些流动性,加剧流动性负债,Transfer 费用在 0.1%-10% 之间,其中 0.1% 给 LP ,其余的会放到一个激励池里,Hyphen 称其为 IP 池。当目标链流动性处于过剩状态时,且用户的交易不足以使其变为负债状态,那么 transfer 费用为 0-0.1% ,全部给 LP 。整体上来看,如果用户的 swap 推动了流动性的再平衡,一般 deposit 奖励会大于 transfer 费用,该交易整体上是被奖励的,反之,则 deposit 奖励小于 transfer 费用,该交易是被额外收费的。
Hyphen Introduction:https://docs.biconomy.io/products/hyphen-instant-cross-chain-transfers5.10.2.5.4 Stargate
Stargate 于 2022 年 3 月推出,是 LayerZero Labs 建立在 LayerZero 协议标准上的首个跨链应用,专攻资产跨链传输。Stargate 与 Hyphen一样,通过动态费用机制来鼓励用户和套利者来平衡流动性,Stargate 将该机制称为“Delta 算法”
在 Stargate 中,每条链都会为其他链设定一个权重,该权重由开发者进行初始设置,并可以通过治理来调整。
假设 Stargate 一共支持三条链,分别是 X、Y、Z
那么:在链 X 上,有 W(Y) 和 W(Z) 两个权重参数
在链 Y 上,有 W(X) 和 W(Z) 两个权重参数
在链 Z 上,有 W(X) 和 W(Y) 两个权重参数
在链 X 上,流动性会划分为 Y 和 Z 两个分区
在链 Y 上,流动性会划分为 X 和 Z 两个分区
在链 Z 上,流动性会划分为 X 和 Y 两个分区
在一笔从 X 到 Y 的 swap 中,用户会向 X 链的 Y 分区(Y zone on X)存入流动性,并从 Y 链的 X 分区(X zone on Y)取出流动性,Delta 算法会将其理解为 Y zone on X 欠的一笔流动性债务。随着交易的不断进行,债务会不断出现和消失。
如果用户的跨链兑换交易在增加债务,那么用户会被收取额外的费用,如果用户的跨链兑换交易在消除债务,那么用户会获得补贴。
如果只是为了实现动态费用,并不需要做流动性的软分区。分区的意义在于保证交易被提交后不会因流动性不足而失败,也就是 Stargate 提出的“跨链兑换三难问题”中的“即时最终性”。因为当 X 链 和 Y 链 同时向 Z 链跨链时,只需判断各自分区的流动性够不够就可以了,不用担心自己分区内的流动性被另一条链来的交易抢用而导致交易失败。但这种分区的方案,似乎流动性效率偏低。假设从 X 到 Y 有一笔 大额交易,本来 Y 链上的总流动性是足够的,但是对应分区(X zone on Y)的流动性如果不足,那就只能拒绝交易。为了保证交易不会失败,而牺牲流动性效率,值得吗?
Delta 算法资料有限,笔者可能理解有偏差,欢迎读者在 PAKA 公众号下留言指正。
Stargate Docshttps://stargateprotocol.gitbook.io/
Delta 算法论文https://www.dropbox.com/s/gf3606jedromp61/Delta-Solving.The.Bridging-Trilemma.pdf
5.10.2.5.5 恒定兑换模式小结
我们看到,该类型的 SwapBridge 设计的核心是流动性再平衡机制。
在 Multichain 中,没有流动性再平衡机制,如果 swap 时,目标链上的流动性不足,用户将不得不收到反应中间物:anyToken,以在流动性充足时重试交易;
在 XY Finance 中,流动性再平衡机制是为那些推动流动性再平衡的交易提供 $XY 激励;
在 Hyphen 和 Stargate 中,流动性再平衡机制是动态费用模型,推动流动性平衡的交易会获得奖励,加剧流动性不平衡的交易会被额外收取费用。
我们还发现,这些项目对“平衡状态”的定义并不相同。
在 xy Finance 中,对“平衡状态”的定义是“平均状态”,系统的激励措施实际上是在推动每条链上的流动性倾向于相等;
在 Hyphen 和 Stargate 中,对“平衡状态”的定义是,在没有任何交易时,LP 提供的流动性的自然分布状态。即便没有再平衡措施,LP 也倾向于更加合理的提供和调节流动性,因为这样能够使他们获得的交易手续费最大化,因此认定 LP 提供流动性的自然状态是平衡状态,是有其合理性的。
六
5.10.2.6 订单薄模式
5.10.2.6.1 Connext
5.10.2.6.2 Hashflow
5.10.2.6.3 Orbiter
5.10.2.6.4 Orion Bridge
5.10.2.6.5 订单薄模式小结5.10.2.6 订单薄模式
由于区块链的非实时性,AMM 所支持的交易,始终无法避免滑点问题和被 MEV 机器人套利的问题,而订单薄可以做到所见即所得,也就是说,在交易之前,价格会首先被确定。
此外,订单薄模式中,桥梁无需考虑流动性再平衡的问题,LP 会自行优化自己的流动性配置,以免错过订单。LP 之间的竞争还会促进 LP 为用户提供更优的价格。
因此我们看到,一些 SwapBridge 的项目采用了订单薄的模式来为用户提供资产跨链服务。
5.10.2.6.1 Connext
Connext 在成立之初是一只小而美的技术团队,总部在美国,其创始人 Arjun Bhuptani 曾是 Moloch DAO 的 Co-Founder 。Connext 得到了以太坊基金会的资助,并得到了加密领域一些顶级投资者的支持,包括 Polychain Capital、Consensys Ventures、1kx 等机构,累计融资 1570 万美金。Connext 和 cBridge 一样,都曾采用基于本地验证(哈希时间锁)的交易模式,但也由于同样的原因(需要用户进行两次操作,体验较差),放弃了这种模式。
*(这意味着我们 5.2.3.2 中描述的内容已经过时)
现在的 Connext,已经完成 Amarok 升级,开始采用 Nomad 作为 AMT 层。或者也可以理解为 Connext 是 Nomad 的一个快速通道(Nomad 自身是慢速通道),而 Nomad 是 Connext 的争议解决层。升级后,其流动性依旧由 Router 提供,属于订单薄模式。用户会先将资产锁定在源链,Router 观察到此交易之后,会向 Sequencer 报价,所有 Router 都可以报价,如果 Router 的储备不足,也可以只提供部分的流动性;
Sequencer 是 Connext 中的一个链下角色,负责收集 Router 的报价,避免 Router 在链上报价的 Gas 浪费。Sequencer 会为用户选择最佳的报价并将其发布到链上;
报价本质上是一笔未签名的交易,被发布到链上后用户会进行确认,确认后 Router 需对其签名,签名后交易生效,用户立即收到款项,如果 Router 被选中后不签名,会被 Slash 。
在约 40min 之后,用户在源链锁定资产的交易被 Nomad 传输到目标链,Nomad 将创建相应数量的 wrap 资产,并利用目标链上的本地流动性交换为其原生版本,然后支付给垫付流动性的 Router 。
由于 Router 为用户垫付流动性的行为产生了资金占压成本,因此会被用户以跨链费用的方式补偿。
目前 Connext 桥梁中共有 9 个 Router 为用户提供流动性服务。
Connext docshttps://docs.connext.network/
Amarok 升级https://blog.connext.network/announcing-the-amarok-network-upgrade-5046317860a45.10.2.6.2 Hashflow
Hashflow 是一座新兴的订单薄模式的 SwapBridge ,目前的 LP 主要来自审核过的做市商,随着审核的逐渐开放,将会有更多的做市商加入。创始人兼 CEO Varun Kumar ,毕业于美国斯坦福大学航空工程博士,联合创始人兼 CTO Victor Ionescu ,毕业于英国牛津大学数学和计算机科学学士,过去曾在 Facebook 跟 Airbnb 担任资深工程师。Hashflow 的资方当中包含了不少大型做市机构,我们可以预见,Hashflow 将聚合大量来自他们的流动性。在 Hashflow 中,LP 通过运行各自的做市算法(PMM)来提供流动性,用户发起的每一笔交易都将有多个 LP 试图提供流动性,用户可以选择最优的价格成交。
交易分为两个步骤,分别是交易撮合和交易执行。交易撮合在链下完成,用户发起交易后,LP 会提供报价,用户确认报价后,交易撮合完成。交易执行在链上完成,该过程需要借助 AMT 层进行跨链消息的传递和验证。Hashflow 目前使用 Wormhole 作为 AMT 层。
* 在一些宣传材料中称是 LayerZero ,但官方文档里的说法是 Wormhole 。
为了降低提供流动性的门槛,Hashflow 做了创新。LP 可以创建集合账户,其他用户可以向其中投注资金参与做市,所有做市操作由集合账户的创建者来完成。
Hashflow Docshttps://docs.hashflow.com/5.10.2.6.3 Orbiter
Orbiter 是一座专注于 EVM 生态的 SwapBridge 。2022 年 11 月 ,Orbiter 完成宣布首轮融资,投资方包括 Tiger Global、Matrixport、A&T Capital、StarkWare、Cobo、imToken、Mask Network、Zonff Partners 等,融资金额未披露。项目方还表示,Vitalik 曾向其捐赠 16 ETH 。
在 Orbiter 中有两个角色,sender 和 maker 。sender 就是发起交易的人,maker 就是 LP 。当在链下 maker 同意与 sender 进行交易之后,sender 可以在源链上直接向 maker 的账户支付资金,然后 maker 在目标链上向 sender 的收款账户支付资金。不过这里面没有报价过程,Orbiter 仅支持同质资产的跨链兑换,兑换比恒定为 1:1 。
Orbiter 在每条链上都部署了一个 MDC 合约,maker 需要在每条链上的 MDC 合约中抵押资金,这是用于保障 maker 忠实履约的保证金。如果在 sender 支付后,maker 意图欺诈,不进行支付或者不足额支付,经过仲裁确认属实后,目标链上的 MDC 合约会将 maker 的保证金支付给 sender 。
这种机制下,一个 maker 能够接的单笔订单金额是有上限的,不能超过其抵押的保证金。
争议仲裁
当 sender 发起仲裁请求时,Orbiter 将依靠 SPV 合约来进行仲裁。
Orbiter 在每条支持的链上部署了其余链的 SPV 合约,目标链上的 MDC 合约会通过SPV 合约传回的消息来确认 sender 是否在源链上进行了正确的支付,进而判断 maker 是否进行了欺诈。
SPV 合约实际上为 Orbiter 支持的各条链之间建立了一个 AMT 层。
Orbiter Docshttps://docs.orbiter.finance/5.10.2.6.4 Orion Bridge
Orion Protocol 成立于 2018 年,除开种子轮的 40W 美金,最近的一次是 2020 年 7 月的融资,筹集了 345 万美元。
Orion Protocol 的主要模块有三个,包括 Swap、Trade、Bridge 。Swap 模块是一个类似于 1inch 的聚合 DEX ,仅支持同一链的资产交换,比 1inch 强大之处在于可以聚合来自 CEX 的流动性;Trade 模块是一个类似于 dydx 的订单薄交易系统,同样,仅支持同一链的资产交换。
与本文主题有关的是 Bridge 模块(我们就称其为 Orion Bridge 吧),这是一个跨链兑换模块。
Orion Bridge 采用哈希时间锁来保障交易的安全性。用户可以创建原子交易,交易经纪人将提供流动性,充当公共交易对手方。如果交易经纪人在接单后,不完成交易,会导致用户的资金卡住,必须等到时间锁结束后才能取回。所以交易经纪人需要质押 $ORN(也可以从其他 $ORN 持有者手中搜集委托),如果发生恶意卡单,交易经纪人的 $ORN 会被 Slash 。
Orion Whitepaperhttps://www.orionprotocol.io/hubfs/whitepaper.pdf5.10.2.6.5 订单薄模式小结
AMM 是 DeFi 的原创,而且是 DeFi 发展过程中的一个具有重要意义的创新,而订单薄则是相对古老的存在。AMM 模式是一种相对“民主”的模式,任何人都可以提供流动性,而订单薄模式中,由于技术门槛和资金门槛的存在,提供流动性这门生意往往成为一些“金融贵族”的专属。
在订单薄模型中,至少需要 LP :
• 为私钥维护一个安全的热钱包环境;
• 保证运行可靠性;
• 管理各接入链的 RPC;
• 管理流动性;
• 调整费用配置文件等等。
尽管 Hashflow 的“集合账户”功能可以一定程度上降低 LP 门槛,但订单薄模式中,招募 LP 的工作是一件 to B 的业务,而非 to C 的业务,这对于某些缺乏相关商业资源的项目方而言,可能不具备优势。
订单薄模式的优势也很显著,在 LP 充分竞争的情况下,订单薄模式对价格的反应更加敏捷也更加准确,而 AMM 总是给套利者留下空间。从交易体验层面,订单薄模式还具备无滑点,无 MEV,没有无常损失的优势。
七
5.10.2.7 SwapBridge 聚合器
5.10.2.7.1 Rango
5.10.2.7.2 Bugee
5.10.2.7.3 Li.Fi
5.10.2.7.4 ChainHop
5.10.2.7.5 Chainge Finance
5.10.2.7.6 SwapBridge 聚合器小结
5.10.2.7 SwapBridge 聚合器
在单链 DEX 领域,我们看到有 1inch 这样的聚合器,在 SwapBridge(也就是跨链 DEX)领域聚合器同样也是一门不错的生意。对用户而言,使用聚合器进行兑换是更好的选择,因为聚合器可以自动提供最优路线,免去了用户在多个桥之间对比选择的烦恼。
5.10.2.7.1 Rango
Rango 是目前支持广度较大的聚合器,集成了 26 座桥,覆盖 40 多条链(包括 EVM系、Cosmos 系、波卡、Carnado、Near),同时在各链上累计集成了超过 100 个 DEX 。Rango 希望任何资产都可以在这里一站式完成跨链交换。
根据 Rango 团队在 2022 年 2 月的报告,Rango 过去 6 个月的跨链交易金额达到了 12 亿美元。5.10.2.7.2 Bugee
Bungee 的原名为 FundMovr,我们在 5.2.5.1 中提到过这个项目,是由 Socket(原 Movr Network)支持的跨链聚合器。Bungee 目前聚合了 Hop.Exchange,Refuel Bridge,Anyswap,Polygon Bridge,Hyphen,Arbitrum Bridge,Celer,Optimism Gateway,Across,Stargate 共计 10 座 SwapBridge 。覆盖的链不算太多,主要集中于 EVM 系。
Bungee 的特色在于支持点对点的匹配结算,如果网络内有两笔交易,资产类型相同,方向刚好相反,Bungee 会直接撮合两者,交易金额较小的一方可以直接获得点对点的支付,交易金额较大的一方可以获得部分点对点支付,差额部分再通过聚合器内的桥梁完成。点对点结算可以提高部分交易的速度,并降低其开销。
Bungee Docshttps://docs.socket.tech/5.10.2.7.3 Li.Fi
Li.Fi(曾名为 Li.Finance)是一个主要服务于 dApp 和钱包等应用的跨链聚合协议模块。2022 年 7 月, Li.Fi 宣布完成了 550 万美元融资,由 1kx 领投,参投方包括 Dragonfly Capital、Lattice Capital、Scalar Capital、6th Man Ventures、Coinbase Ventures、BairesDAO 和 AngelDAO 等。据官网信息显示,目前集成 Li.Fi 协议的应用包括了 ParaSwap、CowSwap、DODO 以及钱包 Steak Wallet 和 Alpha Wallet ,甚至包括了加密货币托管和资产管理平台 Cobo 。
Li.Fi 本身并不是一个应用,而是一个面向应用的服务,Li.Fi 为 dApp、钱包、DeFi 协议等提供跨链兑换的功能赋能,让用户能在这些产品中直接实现跨链兑换,而无需去一个新的界面。为此 Li.Fi 开发了 SDK、API、Widget 等便于集成的工具。
Li.Fi 自己开发的前端产品为 transferto 。
目前 Li.Fi 已经聚合了 Connext、Hop、Celer cBridge、Multichain、Hyphen、Optimism Gateway、Polygon Bridge (PoS)、AVAX Bridge、Arbitrum Bridge、Across、Stargate、Omni Bridge、Gnosis Bridge、Portal 共 11 座 SwapBridge ,覆盖 18 条公链。
Li.Fi Docshttps://docs.li.fi/5.10.2.7.4 ChainHop
Chainhop 最早是建立在 cBridge 之上的一座 SwapBridge。但现在 Chainhop 进一步 聚合了 Multichain、Stargate、Across Bridge、Hyphen Bridge、Hop Bridge 共 6 座 SwapBridge ,从而发展成了一个聚合器,可以为用户搜索跨链交易的最佳路径。为了提供更好的交易价格,Chainhop 的路由算法支持多跳交易,例如,当用户请求在 Fantom 上将大量 ETH 兑换成 Optimism 上的 USDC 时。ChainHop 可能首先将 ETH 桥接到以太坊,然后在以太坊上完成 ETH-USDC 交换(通常 price impact 要小得多),最后将 USDC 桥接到 Optimism 。
https://docs.chainhop.exchange/5.10.2.7.5 Chainge Finance
Chainge Finance 是在交易深度上做的最足的一个聚合器。与此同时,Chainge APP 是一个多链钱包,内置了跨链兑换的功能。Chainge 不但支持 Chainhop 式的多跳交易,还可以实现自动拆单。
当有大额订单时,Chainge 可以将订单拆分给多个流动性池,共同完成交易。这包含三个层面:
1. 在 SwapBridge 这一层,由于桥的流动性储备可能不足,或者在 AMM 机制下,price impact 太大,又或者某些桥设定了单笔交易额的限制,如果不能满足大额订单的兑换,Chainge 会将订单拆分给不同的 SwapBridge 来分担。2. 在 DEX 这层,在执行兑换时,将订单拆分给单链上的多个 DEX 来完成交易,以减小整体的 price impact ;3. 结合多跳交易机制,将订单拆分给多个链上的 DEX 来完成交易,以减小整体的 price impact 。自动拆单的机制让 Chainge 面对大额交易时有巨大的优势。
Chainge 还有一个独家功能,那就是支持一键兑换多链上的资产,Chainge 文档中称其为“跨链漫游”,比如我在Ethereum、Polygon、Optimism 三条链上都有 ETH,我想把这些 ETH 全部兑换为 Ethereum 上的 USDT ,在 Chainge 中,不需要分别操作,而是可以一键完成,这个过程不用担心 Gas 费种类多的问题,因为 Gas 费是用全局 Gas 代币 $CHNG 支付的。用户在跨链兑换过程中可以只关心有哪些资产,不用关心这些资产分别在哪些链,感兴趣的朋友可以去 Chainge APP 体验一下,非常酷的功能。
Chainge 目前除了自己自身的 SwapBridge 模块以外,还聚合了 Multichain、cBridge、Rainbow、Arbitrum Bridge、Optimism Bridge,Avalanche Bridge 共 6 座桥,覆盖 35 条链,在各链上累计聚合了 57 个 DEX 。
Chainge Docshttps://chainge-finance.gitbook.io/chainge-finance/get-started-1/introduction5.10.2.7.6 SwapBridge 聚合器小结
聚合器的出现可以说是改变了 SwapBridge 之间的竞争格局。
其一,聚合器吸引了大量的用户,成为了 SwapBridge 的主要流量来源, SwapBridge 项目自身能吸引多少用户已不再重要。SwapBridge 之间的竞争变成纯粹的资本效率竞争,看谁的做市算法更优秀,看谁能吸引更多的 LP 资金,最终看谁能为用户提供更优的价格。
其二,在没有聚合器的前提下,支持更多链的 SwapBridge 可以获得更多用户,但有了聚合器,支持的链的数量变的不重要,如果一个 SwapBridge 在少数几条链上具备绝对的流动性优势,那就可以在聚合器的流量分配中占据一席之地。在用户端,竞争主要在聚合器之间展开,为了吸引更多的用户,聚合器需要• 尽可能支持更多的链(通过聚合更多的 SwapBridge)• 尽可能支持更多的资产(通过聚合更多的 DEX)• 尽可能提供最优的交易价格(除了聚合更多的 SwapBridge 和 DEX ,还可以通过提供“多跳”、“拆单”、"点对点匹配"等功能实现)• 尽可能快的找到最优路径(需要强劲的服务器,在链下模拟交易)• 尽可能被集成在更多应用中,以获得流量总之,SwapBridge 聚合器是一个快速发展的领域,各项目正在各个方面上激烈的赛跑,我们文中所列的一些数据,可能随时在发生变化。
八
5.10.2.8 枢纽链
5.10.2.8.1 Catalog
5.10.2.8.2 Qredo
5.10.2.8.3 Pancakeswap
5.10.2.8.4 Permaswap
5.10.2.8.5 枢纽链小结
5.10.2.8 枢纽链
还有一种方法可以解决跨链资产兑换的问题,那就是跨链桥将中继链或将桥接链打造为流动性枢纽(我们称该链为枢纽链),将所有其他链的资产 wrap 到枢纽链上,并在枢纽链上建立流动性以支持交易。我们认为这种情况已经不属于 SwapBridge 的范畴,而应该理解为一个单链 DEX 应用与 WrapBridge 的组合,其模式有点类似于我们通过中心化交易所来完成跨链交换:充币→交易→提币。
但我们不能否认,这种模式也能解决跨链资产兑换的问题,甚至能比其他方式解决的更好。因此,我们依旧会列举这方面的一些有特色的项目案例。
5.10.2.8.1 Catalog
Catalog 基于 Ren Bridge 开发一个产品。我们知道 Ren Bridge 是一座跨链桥,而Ren Protocol 是一个 MPC 网络,也是 Ren Bridge 的桥接链。Catalog 正是部署于 Ren Protocol 之上的虚拟机环境 RenVM 中。通过 Ren Bridge ,用户可以将其他链的资产充入 Ren Protocol ,进而在 Catalog 中进行交易,也可以在交易完成后,再通过 RenBridge 将资产提到目标链。
截止目前,Catalog 正在开发中, 还未正式上线。
Catalog Introductionhttps://medium.com/renproject/introducing-catalog-3a260c9d973b
5.10.2.8.2 Qredo
“Not your keys, not your coins” 是区块链账户的基本规则,但这对于数字资产的持有人而言有莫大的单点风险,丢失私钥就丢失了一切,对于个人而言如此,对于持有价值上亿美元的基金而言也是如此。因此大型基金倾向于把自己的加密资产交给专门的托管机构来管理。Qredo 起初就是一家资产托管机构。
在拥有大量托管资产的基础上,Qredo 希望能够进一步帮助客户机构进行资产的交易。于是 Qredo 推出了自己的 MPC 网络,该网络目前有 6 个节点,随着后续发展会不断扩充。这些节点在提供资产托管服务的同时,为托管其中的资产提供交易服务。用户可以将任意资产充入 Qredo 网络,成为 qToken,并在其中交易。Qredo 的流动性模式为订单薄,任何主体在存入满足最低数量的要求的资产之后,质押 $QRDO 代币可成为做市商。用户发起交易时,会向所有做市商发出报价请求(RFQ),报价被选中并成交的做市商将从交易中获得 0.005% 的手续费用。截止撰文,Qredo 还处于早期阶段,相关功能还在开发中。Qredo Docshttps://developers.qredo.com/
5.10.2.8.3 Pancakeswap
Pancakeswap 是 BSC 链上的旗舰 DEX 协议,由一小群匿名的工程师开发于 2020 年 9 月推出,虽然外界并不知道创始人的具体身份以及项目融资情况,但是项目依然大获成功。起初,PancakeSwap 只是利用 BSC 来实现价格低廉的代币交换,其交易 Gas 费几乎只有 Uniswap 的 1/50 ,但随着 BSC 链上聚集了来自大量其他链的 wrap 资产,Pancakeswap 已经成为一个多链资产流动性枢纽。
5.10.2.8.4 Permaswap
Permaswap 是 everVision 团队基于 Arweave 建立的一个 SCP(基于存储共识的范式)应用。SCP 应用是一种很有意思的范式,可以使得应用具备 Web3 特性的同时,具有堪比 Web2 的高性能,感兴趣的朋友可以通过这里了解。
在 Arweave 上进行交易序列化存储可以为 SCP 应用提供多对多原子交易。该功能使得任何交易可以作为一个整体,不存在一个方向上成功而另一个方向上失败的可能性。
通过 everPay 的跨链功能,用户可以将资产充入 Permaswap ,或从 Permaswap 提走。在 Permaswap 中,用户将可以享受快捷的交易体验。
Permaswap 以订单薄的方式建立流动性,任何人都可以成为 LP ,设置报价算法并提供流动性。LP 需要质押 $PSN ,如果提供报价但超时不签名,导致交易失败的话,会被 Slash 。
Permaswap 也是一个正在开发中的项目。
Permaswap Whitepaperhttps://mirror.xyz/permaswap.eth/ustZcDgavlm4xmYI26thEAj8W2cXlZpRkG5Jqz0iS145.10.2.8.5 枢纽链小结
其实我们在 Symbiosis V2 中也看到了一些枢纽链的影子,S-chain 事实上充当了枢纽链的角色,但 S-Chain 只是有限的几种稳定币的交易平台,作为一个中间过程的载体,帮助用户完成从源链到目标链的兑换。
本小节中所涉及到的枢纽链则不同,它们不仅希望在自身平台上建立几种主流媒介资产的流动性,而是有野心为更多的资产建立流动性。可以说,这些项目希望将自身的经营模式打造为更接近中心化交易所的模式。
5.10.2.9 SwapBridge 小结
我们终于对种类繁多的 SwapBridge 有了一个全面的认识。
流动性是 SwapBridge 永恒的主题,我们根据流动性模式对 SwapBridge 进行了分类:
• 桥下 AMM 模式在链上用 wrap 资产与原生资产组流动性池• 桥上 AMM 模式直接用多链上的资产储备组流动性池• 订单薄模式则由 LP 直接提供流动性,并与用户交易
流动性效率是 SwapBridge 的关键成功因素。整体上看:
在 LP 的专业程度满足条件且 LP 充分竞争的前提下,订单薄模式的流动性效率是高于AMM的(Uniswap V3 除外),而且订单薄模式对 LP 的流动性资金不是独占的,LP 理论上可以用同一份资金为多个订单薄做市。限制订单薄模式被采用的主要因素是 LP 的专业门槛和资金门槛。
在 AMM 模式中,允许提供不对称流动性的项目要比必须提供对称流动性的项目的流动性效率要高。因为不对称的流动性更能真实的反应不同方向上跨链需求强度的差别。桥下 AMM 大多要求对称的流动性,桥上 AMM 和恒定兑换模式则大多允许不对称的流动性,只是各自的方案不尽相同。我们相信仍会有项目前赴后继,探索更高流动性效率的方式,我们将持续关注那些有突出创新的项目。下表是我们对现有项目和方案的一个梳理。九
5.11.1 跨链机枪池
5.11.2 跨链借贷协议
5.11.3 跨链衍生品
5.11.4 跨链治理
5.11.5 跨链 NFT
5.11.6 跨链流动性聚合
5.11.7 跨链应用范式
5.11 其他跨链应用
目前来看,资产桥依旧是最重要的跨链应用,但我们发现随着多链格局的形成和 AMB 桥的成熟,越来越多类型的跨链应用正在涌现。这其中,包括原生的跨链应用,也包括原本单链应用的多链扩展。5.11.1 跨链机枪池
机枪池,又称收益聚合器。协议将用户托管的资产用于各种生息活动,并在这些活动中不断迁移,以寻找最大化的收益率。这样用户就无需考察各种生息活动的收益率,手动迁移资产。机枪池极大的改善了 yield farming 的体验。AC 创建的Yearn Finance 是 DeFi 世界中机枪池协议的开创者。
随着多链格局的形成,用户已不满足于在单链上寻求最大化的收益,而是希望将该活动扩展到多链,以进一步提高收益率。于是跨链机枪池称为一个重要机会。
这条赛道上的项目有 Nexus Protocol、Avault、Popsicle Finance 等。
5.11.2 跨链借贷协议
不少借贷协议都在做多链业务扩展。例如借贷协议巨头 Aave,截止目前,已经支持 6 条链的借贷业务(Arbitrum 、Optimsism、Polygon 、Fantom 、Harmony),但这在我们看来还不叫跨链借贷协议。这只是将同一个协议做了多链部署,而真正的跨链借贷需要支持更加灵活的场景:异链借款:用户可以在一条链上存入抵押资产,并在另一条链上获得贷款
异链还款:用户可以在一条链上归还贷款,在另一条链上取回抵押资产
以这个标准来看,MakerDAO 是真正的跨链借贷协议,现在 DAI 在 EVM 生态内是支持异链借还的,MakerDAO 通过 Maker Optimism Bridge(本系列 5.2.2.4 中有提及)来实现这一点。Aave 和 Compound 已计划支持异链借还功能,但相应模块还在开发中。
除此之外,这条赛道上的项目有 Radiant、Equilibrium 等。
5.11.3 跨链衍生品
在 DeFi 中,衍生品是一个包罗万象的类目,包含了合成资产、预测市场、永续合约、期权、保险、利率衍生品、Staking 衍生品等产品。
这些衍生品协议同样对跨链有着强烈的需求,跨链可以提升衍生品协议之间的可组合性,也可以创造新的衍生品。这里面有很多创新的机会,但目前的发展还处于较初级的阶段。
致力于跨链衍生品赛道的项目有 Injective、AntiMatter、Bifrost 等。
5.11.4 跨链治理
对于已经部署在多链的应用,跨链治理是刚需——在一条链上达成治理决议之后,需要在多条链上同步执行。即便对于单链应用,也可能需要将治理过程放在一条成本更低的链上,在达成治理决议之后,再同步到应用所在链执行。
目前来看,多数应用项目方选择建立一个多签委员会来负责同步治理决议(我们也可以理解为是一个外部验证桥),例如 AAVE 现在正在应用中的治理跨链桥👇
*(https://github.com/aave/governance-crosschain-bridges)
不过随着第三方跨链治理工具的成熟,这种局面可能改变。我们在 5.8.1 小节提到,Nomad 正在开发通用的跨链治理模块—— ZNM 。
5.11.5 跨链 NFT
和 Fungible Tokens 一样,NFT 也存在跨链的诉求,而且我们看到不少 WrapBridge 已经支持了 NFT 的跨链转移,例如 Multichain 推出了 AnyCall NFT Bridge ,Layerzero 则部署了 Omni X 以支持 NFT 的跨链。
这将提升 NFT 的流动性,扩充 NFT 的可组合性。NFT 跨链的实现逻辑与 Fungible Token 并无二致,也是 lock-mint/burn-unlock/burn-mint(参考 5.10.1.1)。
我们将跨链 NFT 再推进一步,还可以解锁一个新的用例:通过跨链消息传递允许一条链上的应用追踪另一条链上的 NFT 所有权。例如某一链上的游戏可以支持用户将另一链上的 NFT 作为游戏内的装备或者道具,但并不需要用户跨链转移它们。
5.11.6 跨链流动性聚合
我们前文讲了不少 SwapBridge 的案例,但这个小节重点关注的是另一个问题——多链的流动性割裂问题。比如 Sushiswap 在多个链上都有部署,每条链上部署的Sushiswap 上都有 ETH/USDC 的流动性,但这些流动性是割裂的,深度是不共享的。
改善这个问题,有两种思路:
其一,在不同的链上调度流动性,以在交易量更大的链上提供更大的深度。这种调度可以是异步的,也就是说并不是每次调度都要转移实际的资产,而是先以记账的方式完成虚拟调度,直到某些链上的实际流动性储备过低,不足以完成交易时,再去做流动性的实际调度。这种方式代表性的方案是 SLAMM(Shared Liquidity AMM),在 SLAMM 中,有一个被称为“预测者”的角色,他们负责预测未来一段时间内交易量的分布,并以此为依据,进行流动性的虚拟调度,预测者的预测越接近真实情况,预测者获得越多的奖励。
SLAMM Introduction
https://foresightnews.pro/article/detail/17217其二,将同一交易对在不同链上的流动性视为一个整体。用户在每条链上进行 swap时,都以全局流动性为依据计算执行价格。只要目标链上的流动性池中资产大于用户能够兑换到的数量,交易就可以完成。交易可以是本地的,也可以是跨链的。交易会导致流动性失衡,某条链上的流动性可能耗尽,系统会以异步的方式重新平衡流动性。该方案的优点是对流动性的利用率达到了极致,但也带来了额外的跨链通信成本。由于每次 swap 都要以全局流动性为依据,因此任何全局流动性的变化都要同步给各个链。减少这种同步成本的一个方法是设立一个 Hub Chain ,全部流动性变化由 Hub Chain 负责管理,其他链在进行 swap 时,先从 Hub Chain 获取全局流动性信息。
以上两个方案都处于理论研究阶段,并未付诸实践。事实上,随着 Uniswap V3 的实施,单链上 swap 的 price impact 已经可以做到很低,即便是大额交易,类似Chainge 中的自动拆单功能也可以为用户提供较好的成交价格。统一多链流动性的必要性是存疑的。
5.11.7 跨链应用范式
以上列举了一些跨链应用场景,但或许只是冰山一角。跨链应用的可能性还有很大的挖掘空间。
本小节我们来对跨链应用的范式做一个抽象的探讨。
我们知道跨链使得不同链上的应用具有了可组合性。这种可组合性不局限于不同应用之间,也适用于同一应用在不同链上部署的合约。
实现这种可组合性有两种方式,一种是 Token 传递,A 链上某合约创建的 Token ,可用于 B 链上以实现某种权限。
另一种是消息传递,A 链上的某合约中的事件被传递到 B 链上的某合约,触发 B 链 上的合约执行某种操作。
当单链应用进行跨链部署,并通过上述两种方式的任意一种连接起来时,就是一个名副其实的跨链应用。但我们还可以用更通用的方式搭建跨链应用。
Chainlink 在其博客中提出了一种被称为“门店式合约”的跨链应用范式,跨链应用可以将主要的程序逻辑放在一条链上,就像一个“总店”,然后在其他链上提供一个轻量级程序,以实现与终端用户之间的交互(获取用户的输入、输出用户需要的结果),就像一个个“门店”。“门店”获取用户的输入后,将该输入跨链传递到“总店”,“总店”进行处理后输出结果,该结果再跨链传递到“门店”,向用户输出。
这样做的好处包括:
• 如果“总店”的逻辑中涉及到资产流动性的使用,那么可以将流动性统一部署在“总店”所在链,以避免流动性的分散。
• 如果“总店”的逻辑比较复杂,那么就可以将其部署在一个相对便宜的链上,如果“总店”对安全性比较敏感,就可以将其部署在一个安全性更高的链上,如果“总店”当中的计算有隐私性的要求,那么就可以将其部署在一个隐私链上,其他链上以“门店”的方式面向用户,以实现效用的最大化。当然,“总店”自身也可以把不同的模块部署在不同链上,通过跨链通信组合为一个整体为各“门店”提供服务。
十
6 跨链衍生话题
6.1 跨链桥的安全
6.1.1 信任根安全
6.1.2 代码实现安全
6.1.3 降损措施
6.1.4 安全承诺与保障
6.2 跨链桥的发展趋势
6.3 尾声
在经过第 5 章对各种项目案例的剖析之后,我们将开始收敛话题。这是本系列的最后一章,因此我们谈一些概览和总结性内容。
6.1 跨链桥的安全
对跨链桥讨论最多的莫过于安全问题。频繁出现的跨链桥安全事故中巨额的资产失窃事件,让我们忧心忡忡,也让业内对跨链桥安全性的态度更加审慎。
跨链领域的研究者们都知道 Vitalik 的那句名言:“未来是多链的,但不是跨链的”。Vitalik 认为“跨链存在根本性的安全性限制”。而频繁发生的跨链桥安全事故,让 Vitalik 说的话就像是一句“谶语”。
我们认为跨链的确存在根本性的安全性限制,但由于跨链的需求十分强劲,未来依旧少不了跨链。公链项目方有动力从其他链引进资产;资产发行方有动力让自己的资产流动到更广阔的地方;用户也希望在多链上以去中心化的方式移动和交换自己的资产——这些都是跨链的需求来源。
面对安全性上的问题,我们需要做的是解构它,弥合它。
我们将分四个层面来探讨跨链安全性的问题,分别是:信任根安全、代码实现安全、降损措施、安全承诺与保障。
6.1.1 信任根安全
对于任何形式的跨链而言,链的安全性是最基础的,如果链本身发生重组,那么跨链也会受到影响。Vitalik 所指出的跨链的根本性的安全性限制就是指这一点。与以太坊建立桥接的侧链,其安全性多数情况下都要弱于以太坊,当侧链与以太坊建立桥接,即便是采用信任最小化的原生验证,也会使得跨链的安全性与侧链相当,而非与以太坊相当。
我们推测 Vitalik 的话其实用意在于鼓励更多链选择构建为以太坊 L2,而非侧链。在共享安全性的前提下,这种“根本性限制”将不复存在,因此以太坊 L1 和众多的 L2 ,它们之间的跨链是非常安全的,波卡的平行链之间的跨链也是如此。实际上,我们也可以将共享安全性下的各链理解为一条区块链下的分片,这种跨链实际上是跨分片,安全性是被统一的共识层保障的。
但实际应用场景中,我们不可能把跨链限缩在共享安全性的链集群中,我们必然要在安全性上略作妥协,以获得其他的价值。事实上,迄今为止,并没有发生过由于链重组导致的跨链安全事故。
由信任根导致的跨链事故,仅出现在了外部验证桥中,我们已经分析过,外部验证桥不是信任最小化的桥,它引入了新的信任根,用户必须相信桥的验证者集是可信的。而这个假设很多时候非常脆弱。
2022 年 3 月 23 日,Axie Nifinity 官方跨链桥 Ronin Bridge 遭遇黑客攻击,6.25 亿美元的加密资产遭洗劫。Ronin Bridge 有 9 个多签节点。要确认存款或取款,需要五个节点签名。攻击者通过盗取私钥,控制了 Sky Mavis 的四个节点和一个由 Axie DAO 运行的一个节点。
同年 6 月 24 日,Harmony 官方跨链桥 Horizen 也遭遇了黑客攻击,损失超过 1 亿美元,据 Harmony 创始人称,攻击原因同样是多签私钥被黑客获取。
ⅰ 采用原生验证,实现信任最小化。不过这样会牺牲一些易适配性,在兼容更多链时需要更多的开发成本。但随着 zkRelayer(详见 5.5.7)技术的发展,原生验证在易适配性上的问题也有所缓解。
ⅱ 与乐观验证组合使用。乐观验证会在不损失易适配性的情况下,使得信任根从 m-of-n 转化为 1-of-n ,但会让交易完成速度有 30min 左右的延迟,外部验证可作为“快速通道”来提供交易加速服务。
ⅲ 要求外部节点使用 TEE 设备,不用太多的改造成本,就可以让信任根的安全性提升一大截。我们在前文中已经列举过一些项目,包括 Avalanche Bridge、pNetwork、Bool Network、LCP 。在这篇文章里可以了解更多。
6.1.2 代码实现安全
我们看到大多数的跨链安全事故,其实是代码实现层面的问题,甚至有不少是低级错误,比如:
• 假币充值:缺乏代币合约地址的验证,导致攻击者伪造的代币存入事件没有被过滤;
• 验证人信息被篡改:缺乏访问控制,导致验证者集名单被篡改。
这里面有基础设施层的问题(比如 Solidity 合约支持重入),导致开发者极容易犯错,也有跨链桥代码库不成熟的问题。
这些问题会随着行业经验的积累而慢慢减少。对于跨链项目方而言,能做的事情只能是对代码进行更严谨的审计,并为白帽黑客提供更大金额的漏洞赏金。在跨链事故频发的背景下,很多项目都大幅度提高了对这两项工作的重视程度和资金投入。
6.1.3 降损措施
代码实现层面的安全性是无法 100% 保障的,但资产桥项目方依旧可以采取一些措施来降低可能发生的损失。
1. 限额措施:对一个时段内的资产跨链金额做一个限制,减缓黑客攻击时,短时间内桥梁可能遭受的损失,同时也给到项目开发者足够的反应时间。如果做的更细致的话,应该对不同链上的资产跨出做不同的额度限制,因为不同链的安全性不一致,这也可以理解为给不同链做不同的安全授信。2. 冷热秘钥分离:对于外部验证桥,节点的秘钥应当冷热分离,热秘钥只能操作较低额度的资产,如果涉及较大的资产跨链,则需要节点手动操作冷秘钥进行签名。这样可以降低热秘钥被盗后桥梁可能遭受的损失。3. 暂停键:跨链桥应该为一个人数不多的委员会或者个人授予按下暂停键的权利,一旦发生安全事故,能够紧急停止桥梁业务来避免损失扩大。如果做的更细致的话,应该为跨链桥的不同模块、不同 Channel 分别设置暂停键,以实现跨链业务的局部暂停功能。4. 事后追索措施:在发生被盗事件后,项目方应该快速行动,展开围堵,阻止被盗资金的流散,尽力挽回损失。在这点上,Binance Bridge 在 2022 年 10 月 7 日被盗后的表现堪称楷模。6.1.4 安全承诺与保障
我们还应该问一个问题:桥梁项目方为什么要关心安全问题?我们以小人之心推测的话,有些桥梁项目方可能并不关心桥的安全,反正受损失的是桥的用户,大不了放弃项目另起炉灶,甚至我们不能排除桥梁项目方坚守自盗,毕竟这样比收取跨链手续费获利快太多了!
所以,用户也好,应用开发者也好,在选择桥梁时,可以不用关心桥梁的信任根、代码实现乃至降损措施,只需关心桥梁项目方的安全承诺:如果跨链安全事故造成损失,项目方究竟愿意承担多少赔偿责任?
我们看到,在经历安全事故后,一些跨链桥项目方选择全额赔付了用户的损失,一些则进行了部分的赔付,还有一些项目方选择不做任何赔付。在我们看来,那些有全额赔付历史的桥梁项目方更值得信任。除此以外,我们还希望,桥梁项目方能够基于一个保险库,对桥梁的使用者做出赔付承诺,或者与去中心化的第三方保险协议合作,为用户提供安全保障金。
6.2 跨链桥的发展趋势
任何的预测都有风险,现实是一个混沌系统,我们对趋势的判断是基于自身认知的一个概率判断,而非确定性的判断。
以下是我们提炼的趋势点:
• AMT 层和应用层的解耦将会更显著。AMB 桥将倾向于专注基础设施和应用接口的开发,而应用层可以专注应用开发,不必考虑 AMT 层的事情,而且可以从 AMB 桥对优质应用的争夺过程中获得红利;• 哈希时间锁(本地验证)由于其用户体验上的硬伤,其应用场景将趋于狭窄;• TEE 可能会成为外部验证型桥梁的标配。因为这是外部验证型桥梁改进信任根性价比最高的方法,并不需要多少改造即可实现;• 乐观验证与外部验证组合的形式,可以让用户/应用在安全性和速度的选择上有自主权,将获得更多采用;• zkRelayer 技术的发展将加速轻客户端桥的采用。• 跨链桥与去中心化保险结合为用户提供安全保障是一个值得关注的方向;• 订单薄型 SwapBridge 和非对称 AMM 型 SwapBridge 具有更高的流动性效率,会在众多的 SwapBridge 竞争中占据有利地位,淘汰掉对称 AMM 型 SwapBridge。• 在 CEX 暴雷和新概念钱包发展的背景下,SwapBridge 聚合器领域和枢纽链领域将可能出现现象级项目;• Vitalik 的担忧并不是没有道理,因此在所有的跨链传输中,共享安全性的链集群内的跨链传输将占据主要部分。本系列研报,我们从原理到应用,对跨链桥进行了广泛而深入的探讨。为了完成本系列研报,我们考察了超过 100 个跨链桥项目,求助了 20 余名从业者和研究者,历时超过半年。在希望指导我们的投资的同时,我们更希望该作能给从业者们做一个参考,为行业的发展略尽绵薄之力。
我们认为跨链领域还处于发展早期,无论是技术、市场,还是应用场景、用户体验,都还有很大的改进和开拓空间,我们看好跨链,也坚信在从业者们的努力之下,跨链领域能走出安全隐患的阴霾,更加健康、快速的成长。
▼
再次感谢在本系列研报撰写过程中提供帮助的朋友:
(依据音序排名)
1PAR Research Founder,Shawn Lin
Allbridge BD,Pavel Velykyi
Bool Network 产品负责人 Ronnie
Bool Network 技术负责人 Kayryu
Bifrost 系统架构师 Buffalo
Bifrost 产品负责人 Tyrone
Bifrost 高级工程师 Edwin
Celer Founder,Mo Dong
Chainge Founder,Dejun QIan
ChainX 产品负责人 Cris
ChainX 技术负责人 徐留成
Darwinia 技术教育专家 Robin
Darwinia 高级工程师 Aki
everVision Founder 熊炜
imtoken 研究员 Nic Lin
MAP Protocol 核心开发者 James
Stafi Founder Liam、技术负责人 Tore
▲
END
参考资料
[1] 深度解析当前热门资产跨链方案https://mirror.xyz/lionking062.eth/t1bA9FSDyCoDuzVlc53jKV7Jg-CWCr37Y6_fHlBjivY[2] 速览跨链 DEX 的发展趋势和聚合跨链协议的兴起https://www.chaincatcher.com/article/2080889[3] 跨链漫谈:跨链聚合器的差异化竞争https://www.chaincatcher.com/article/2073232[4] 跨链 DEX 的发展趋势和聚合跨链协议的兴起https://www.binance.com/en/news/flash/7231709[5] Fundamental Insights: An Overview of Mainstream Cross-chain DeFi Exchangeshttps://fundamentallabs.substack.com/p/fundamental-insights-an-overview[6] 马上 2023 年,跨链还有哪些可能性?https://www.theblockbeats.info/news/32396[7] 管窥跨链桥:跨链与跨行转账有何不同?https://mp.weixin.qq.com/s/UdP0lnKGP0Wd7Rci--VIzw[8] 揭秘跨链过程:当你在进行跨链时,资产真的转移了么?https://www.chaincatcher.com/article/2070390
About PAKA
往期推荐